iwlwifi: mvm: the SCD byte count is a TLV flag
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Wed, 6 Mar 2013 09:53:38 +0000 (11:53 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 6 Mar 2013 15:48:03 +0000 (16:48 +0100)
The SCD byte count layout is decided by the configuration
done in fw, it is then logical to export it as a TLV flag
and not per HW SKU.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/iwlwifi/iwl-fw.h
drivers/net/wireless/iwlwifi/mvm/ops.c

index 54848d59df0e962440f7cf2f7ae9b55fc06e178f..435618574240b2854cf7bdd59b0f798aa383e13b 100644 (file)
  *     treats good CRC threshold as a boolean
  * @IWL_UCODE_TLV_FLAGS_MFP: This uCode image supports MFP (802.11w).
  * @IWL_UCODE_TLV_FLAGS_P2P: This uCode image supports P2P.
+ * @IWL_UCODE_TLV_FLAGS_DW_BC_TABLE: The SCD byte count table is in DWORDS
  */
 enum iwl_ucode_tlv_flag {
        IWL_UCODE_TLV_FLAGS_PAN         = BIT(0),
        IWL_UCODE_TLV_FLAGS_NEWSCAN     = BIT(1),
        IWL_UCODE_TLV_FLAGS_MFP         = BIT(2),
        IWL_UCODE_TLV_FLAGS_P2P         = BIT(3),
+       IWL_UCODE_TLV_FLAGS_DW_BC_TABLE = BIT(4),
 };
 
 /* The default calibrate table size if not specified by firmware file */
index 54595eb7b92a239df75ed0268205958850f2bb80..828bdddd07e97950c1628a885b5672f4579b4dd7 100644 (file)
@@ -370,8 +370,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
        trans_cfg.n_no_reclaim_cmds = ARRAY_SIZE(no_reclaim_cmds);
        trans_cfg.rx_buf_size_8k = iwlwifi_mod_params.amsdu_size_8K;
 
-       /* TODO: this should really be a TLV */
-       if (cfg->device_family == IWL_DEVICE_FAMILY_7000)
+       if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DW_BC_TABLE)
                trans_cfg.bc_table_dword = true;
 
        if (!iwlwifi_mod_params.wd_disable)