diff options
author | Ariej Marjieh <ariej.marjieh@intel.com> | 2014-07-07 02:04:58 -0400 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2014-07-21 03:43:39 -0400 |
commit | 720befbf2ecce8e5851a816fa567584320d721ec (patch) | |
tree | 1a2b7c6625f97a2c4d0d13cdf9830c7e742d5215 | |
parent | 7da91b0ee4884568cb91a77cff122c84953e5698 (diff) |
iwlwifi: mvm: Define AUX ROC Command
Add new AUX ROC command that is intended for HS2.0 purposes.
It is used to send ANQP requests on a specific channel.
This command requests the firmware to trigger a time event
and remain on a certain channel for a given duration.
Triggering the time event is done by using the Aux
Framework in the firmware, and makes use of the Aux station
(similarly to scan).
Signed-off-by: Ariej Marjieh <ariej.marjieh@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api.h b/drivers/net/wireless/iwlwifi/mvm/fw-api.h index b8e4e78d601b..95f5b3274efb 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api.h | |||
@@ -133,6 +133,7 @@ enum { | |||
133 | /* Scan offload */ | 133 | /* Scan offload */ |
134 | SCAN_OFFLOAD_REQUEST_CMD = 0x51, | 134 | SCAN_OFFLOAD_REQUEST_CMD = 0x51, |
135 | SCAN_OFFLOAD_ABORT_CMD = 0x52, | 135 | SCAN_OFFLOAD_ABORT_CMD = 0x52, |
136 | HOT_SPOT_CMD = 0x53, | ||
136 | SCAN_OFFLOAD_COMPLETE = 0x6D, | 137 | SCAN_OFFLOAD_COMPLETE = 0x6D, |
137 | SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E, | 138 | SCAN_OFFLOAD_UPDATE_PROFILES_CMD = 0x6E, |
138 | SCAN_OFFLOAD_CONFIG_CMD = 0x6f, | 139 | SCAN_OFFLOAD_CONFIG_CMD = 0x6f, |
@@ -910,6 +911,72 @@ struct iwl_phy_context_cmd { | |||
910 | __le32 dsp_cfg_flags; | 911 | __le32 dsp_cfg_flags; |
911 | } __packed; /* PHY_CONTEXT_CMD_API_VER_1 */ | 912 | } __packed; /* PHY_CONTEXT_CMD_API_VER_1 */ |
912 | 913 | ||
914 | /* | ||
915 | * Aux ROC command | ||
916 | * | ||
917 | * Command requests the firmware to create a time event for a certain duration | ||
918 | * and remain on the given channel. This is done by using the Aux framework in | ||
919 | * the FW. | ||
920 | * The command was first used for Hot Spot issues - but can be used regardless | ||
921 | * to Hot Spot. | ||
922 | * | ||
923 | * ( HOT_SPOT_CMD 0x53 ) | ||
924 | * | ||
925 | * @id_and_color: ID and color of the MAC | ||
926 | * @action: action to perform, one of FW_CTXT_ACTION_* | ||
927 | * @event_unique_id: If the action FW_CTXT_ACTION_REMOVE then the | ||
928 | * event_unique_id should be the id of the time event assigned by ucode. | ||
929 | * Otherwise ignore the event_unique_id. | ||
930 | * @sta_id_and_color: station id and color, resumed during "Remain On Channel" | ||
931 | * activity. | ||
932 | * @channel_info: channel info | ||
933 | * @node_addr: Our MAC Address | ||
934 | * @reserved: reserved for alignment | ||
935 | * @apply_time: GP2 value to start (should always be the current GP2 value) | ||
936 | * @apply_time_max_delay: Maximum apply time delay value in TU. Defines max | ||
937 | * time by which start of the event is allowed to be postponed. | ||
938 | * @duration: event duration in TU To calculate event duration: | ||
939 | * timeEventDuration = min(duration, remainingQuota) | ||
940 | */ | ||
941 | struct iwl_hs20_roc_req { | ||
942 | /* COMMON_INDEX_HDR_API_S_VER_1 hdr */ | ||
943 | __le32 id_and_color; | ||
944 | __le32 action; | ||
945 | __le32 event_unique_id; | ||
946 | __le32 sta_id_and_color; | ||
947 | struct iwl_fw_channel_info channel_info; | ||
948 | u8 node_addr[ETH_ALEN]; | ||
949 | __le16 reserved; | ||
950 | __le32 apply_time; | ||
951 | __le32 apply_time_max_delay; | ||
952 | __le32 duration; | ||
953 | } __packed; /* HOT_SPOT_CMD_API_S_VER_1 */ | ||
954 | |||
955 | /* | ||
956 | * values for AUX ROC result values | ||
957 | */ | ||
958 | enum iwl_mvm_hot_spot { | ||
959 | HOT_SPOT_RSP_STATUS_OK, | ||
960 | HOT_SPOT_RSP_STATUS_TOO_MANY_EVENTS, | ||
961 | HOT_SPOT_MAX_NUM_OF_SESSIONS, | ||
962 | }; | ||
963 | |||
964 | /* | ||
965 | * Aux ROC command response | ||
966 | * | ||
967 | * In response to iwl_hs20_roc_req the FW sends this command to notify the | ||
968 | * driver the uid of the timevent. | ||
969 | * | ||
970 | * ( HOT_SPOT_CMD 0x53 ) | ||
971 | * | ||
972 | * @event_unique_id: Unique ID of time event assigned by ucode | ||
973 | * @status: Return status 0 is success, all the rest used for specific errors | ||
974 | */ | ||
975 | struct iwl_hs20_roc_res { | ||
976 | __le32 event_unique_id; | ||
977 | __le32 status; | ||
978 | } __packed; /* HOT_SPOT_RSP_API_S_VER_1 */ | ||
979 | |||
913 | #define IWL_RX_INFO_PHY_CNT 8 | 980 | #define IWL_RX_INFO_PHY_CNT 8 |
914 | #define IWL_RX_INFO_ENERGY_ANT_ABC_IDX 1 | 981 | #define IWL_RX_INFO_ENERGY_ANT_ABC_IDX 1 |
915 | #define IWL_RX_INFO_ENERGY_ANT_A_MSK 0x000000ff | 982 | #define IWL_RX_INFO_ENERGY_ANT_A_MSK 0x000000ff |