iwlwifi: handle RFKILL logic in the transport layer
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Thu, 25 Oct 2012 15:25:52 +0000 (17:25 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 31 Oct 2012 16:02:06 +0000 (17:02 +0100)
commitf946b529502399d09471c5d13845fefbfe8555a6
tree597c826ef9bfb679fd765796fd3d83845c76d1cc
parent3e2c159260eed10c44f0dd028c328a40a27ad235
iwlwifi: handle RFKILL logic in the transport layer

No HCMD can be sent while RFKILL is asserted. If a SYNC
command is running while RFKILL is asserted the fw will
silently discard it. This means that the driver needs to
wake the process that sleeps on the CMD_SYNC.

Since the RFKILL interrupt is handled in the transport layer
and the code that sleeps in CMD_SYNC is also in the transport
layer, all this logic can be handled there.
This simplifies the work of the op_mode.

So the transport layer will now return -ERFKILL when a CMD
is sent and RFKILL is asserted. This will be the case even
when the CMD is SYNC. The transport layer will return
-ERFKILL straight away.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/iwlwifi/dvm/main.c
drivers/net/wireless/iwlwifi/dvm/rx.c
drivers/net/wireless/iwlwifi/iwl-trans.h
drivers/net/wireless/iwlwifi/pcie/internal.h
drivers/net/wireless/iwlwifi/pcie/rx.c
drivers/net/wireless/iwlwifi/pcie/trans.c
drivers/net/wireless/iwlwifi/pcie/tx.c