aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2015-02-25 04:06:37 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2015-03-18 02:40:24 -0400
commit4d165d12e36584c44abb8e912944a84c78f91b7c (patch)
treef1e17d777f3a7dc42439f1ede0fd53240a3ba5fb /drivers
parent81d62d5a9c4df3f4f7b0c5f5e1158f3fc4802fda (diff)
iwlwifi: mvm: assign new TLV bit for multi-source LAR
According to FW methodology, the capability bits should be the only ones that change per-HW. The API bits should remain constant across different HWs. Currently this is not the case with multi-source LAR (API bit 9). Assign a new capability bit to eventually replace the API bit. Until the API bit can be deprecated, the driver will check either to enable multi-source LAR. Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fw-file.h5
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mvm.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-fw-file.h b/drivers/net/wireless/iwlwifi/iwl-fw-file.h
index 291a3382aa3f..60f3f86904fb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fw-file.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fw-file.h
@@ -290,6 +290,10 @@ enum iwl_ucode_tlv_api {
290 * @IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT: supports Hot Spot Command 290 * @IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT: supports Hot Spot Command
291 * @IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS: support radio and beacon statistics 291 * @IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS: support radio and beacon statistics
292 * @IWL_UCODE_TLV_CAPA_BT_COEX_PLCR: enabled BT Coex packet level co-running 292 * @IWL_UCODE_TLV_CAPA_BT_COEX_PLCR: enabled BT Coex packet level co-running
293 * @IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC: ucode supports LAR updates with different
294 * sources for the MCC. This TLV bit is a future replacement to
295 * IWL_UCODE_TLV_API_WIFI_MCC_UPDATE. When either is set, multi-source LAR
296 * is supported.
293 * @IWL_UCODE_TLV_CAPA_BT_COEX_RRC: supports BT Coex RRC 297 * @IWL_UCODE_TLV_CAPA_BT_COEX_RRC: supports BT Coex RRC
294 */ 298 */
295enum iwl_ucode_tlv_capa { 299enum iwl_ucode_tlv_capa {
@@ -307,6 +311,7 @@ enum iwl_ucode_tlv_capa {
307 IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT = BIT(18), 311 IWL_UCODE_TLV_CAPA_HOTSPOT_SUPPORT = BIT(18),
308 IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS = BIT(22), 312 IWL_UCODE_TLV_CAPA_RADIO_BEACON_STATS = BIT(22),
309 IWL_UCODE_TLV_CAPA_BT_COEX_PLCR = BIT(28), 313 IWL_UCODE_TLV_CAPA_BT_COEX_PLCR = BIT(28),
314 IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC = BIT(29),
310 IWL_UCODE_TLV_CAPA_BT_COEX_RRC = BIT(30), 315 IWL_UCODE_TLV_CAPA_BT_COEX_RRC = BIT(30),
311}; 316};
312 317
diff --git a/drivers/net/wireless/iwlwifi/mvm/mvm.h b/drivers/net/wireless/iwlwifi/mvm/mvm.h
index 4903dec7048a..23c6c8af4a9f 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/iwlwifi/mvm/mvm.h
@@ -936,7 +936,8 @@ static inline bool iwl_mvm_is_lar_supported(struct iwl_mvm *mvm)
936 936
937static inline bool iwl_mvm_is_wifi_mcc_supported(struct iwl_mvm *mvm) 937static inline bool iwl_mvm_is_wifi_mcc_supported(struct iwl_mvm *mvm)
938{ 938{
939 return mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_WIFI_MCC_UPDATE; 939 return mvm->fw->ucode_capa.api[0] & IWL_UCODE_TLV_API_WIFI_MCC_UPDATE ||
940 mvm->fw->ucode_capa.capa[0] & IWL_UCODE_TLV_CAPA_LAR_MULTI_MCC;
940} 941}
941 942
942static inline bool iwl_mvm_is_scd_cfg_supported(struct iwl_mvm *mvm) 943static inline bool iwl_mvm_is_scd_cfg_supported(struct iwl_mvm *mvm)