wl12xx: restore default channel configuration

wl12xx allocates two static structs wl1271_band_2ghz &
wl1271_band_5ghz which are used/modified by Reg-Domain
e.g. some channel might be marked as passive at some
point. These structs freed only during wl12xx rmmod and
aren't cleared during wl12xx_sdio.ko, this means that
some channel flags might be set regardless reg-domain
rules. Fix this by clearing the channel flags from
the previous usage (before the current wl12xx_sdio.ko
insmod).

Signed-off-by: Victor Goldenshtein <victorg@ti.com>
wl12xx: fix some missing parts
mac80211: purge all pending ROCs on reconfig

A remain-on-channel work item may be queued, causing interfaces to start
on the wrong channel during reconfig.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
mac80211: purge offchannel Tx on reconfig

Offchannel Tx occuring during reconfig can cause us the low level driver
to start various operations on the wrong channel, similar to remain on
channel operations. Purge them before reconfig.

Reported-by: Eyal Shapira <eyal@wizery.com>
Signed-off-by: Arik Nemtsov <arik@wizery.com>
mac80211: warn on enabling beacon while off channel

This can cause the beaconing to start on the wrong channel.
Several such races were fixed but still add a WARN_ON as
we'd like to know if something like that still happens.

Signed-off-by: Eyal Shapira <eyal@wizery.com>