summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/dvm/commands.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-01-08 11:29:12 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-02-12 16:52:25 +0100
commit5718d27fc9a076ca397ea8c3d70e29969be24b9b (patch)
treecee1ba3d70f3c3ea2f0c82baac38b82ba4a98eb8 /drivers/net/wireless/iwlwifi/dvm/commands.h
parentMerge remote-tracking branch 'wireless-next/master' into iwlwifi-next (diff)
downloadlinux-5718d27fc9a076ca397ea8c3d70e29969be24b9b.tar.xz
linux-5718d27fc9a076ca397ea8c3d70e29969be24b9b.zip
iwlwifi: dvm: query and report WoWLAN wakeup reason
Implement proper WoWLAN wakeup and query the wakeup reasons, then report them to userspace. Note that this is tricky: a firmware bug (that has been fixed in later versions) means that the status command response isn't properly closed in hardware and thus won't arrive at the host. Sending another command after it closes the status response but the next command gets stuck, etc. We reset the device after querying though, so this is not a big issue, just makes for strange code. Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/dvm/commands.h')
-rw-r--r--drivers/net/wireless/iwlwifi/dvm/commands.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/dvm/commands.h b/drivers/net/wireless/iwlwifi/dvm/commands.h
index 8bce4b0148e0..02c9ebb3b340 100644
--- a/drivers/net/wireless/iwlwifi/dvm/commands.h
+++ b/drivers/net/wireless/iwlwifi/dvm/commands.h
@@ -3897,6 +3897,24 @@ struct iwlagn_wowlan_kek_kck_material_cmd {
__le64 replay_ctr;
} __packed;
+#define RF_KILL_INDICATOR_FOR_WOWLAN 0x87
+
+/*
+ * REPLY_WOWLAN_GET_STATUS = 0xe5
+ */
+struct iwlagn_wowlan_status {
+ __le64 replay_ctr;
+ __le32 rekey_status;
+ __le32 wakeup_reason;
+ u8 pattern_number;
+ u8 reserved1;
+ __le16 qos_seq_ctr[8];
+ __le16 non_qos_seq_ctr;
+ __le16 reserved2;
+ union iwlagn_all_tsc_rsc tsc_rsc;
+ __le16 reserved3;
+} __packed;
+
/*
* REPLY_WIPAN_PARAMS = 0xb2 (Commands and Notification)
*/