iwlwifi: configure the SKU in the HW
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Tue, 29 May 2012 14:48:08 +0000 (17:48 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 6 Jun 2012 11:22:30 +0000 (13:22 +0200)
This was missing. Fix the mask of the REV_TYPE on the way.

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/iwl-csr.h

index 6cca1f403da34fb89a74be2a586564a7c86e1e7f..10a2800687bccdf07d99ec9b942fc14b80ae0aa2 100644 (file)
@@ -2218,6 +2218,15 @@ static void iwl_nic_config(struct iwl_op_mode *op_mode)
 {
        struct iwl_priv *priv = IWL_OP_MODE_GET_DVM(op_mode);
 
+       /* SKU Control */
+       iwl_set_bits_mask(priv->trans, CSR_HW_IF_CONFIG_REG,
+                         CSR_HW_IF_CONFIG_REG_MSK_MAC_DASH |
+                         CSR_HW_IF_CONFIG_REG_MSK_MAC_STEP,
+                         (CSR_HW_REV_STEP(priv->trans->hw_rev) <<
+                               CSR_HW_IF_CONFIG_REG_POS_MAC_STEP) |
+                         (CSR_HW_REV_DASH(priv->trans->hw_rev) <<
+                               CSR_HW_IF_CONFIG_REG_POS_MAC_DASH));
+
        priv->lib->nic_config(priv);
 }
 
index 41dc6911b164252e5c58022704eba393dcfcbf20..34a5287dfc2f6d1c366e6555a14ee284dad8bd5e 100644 (file)
 /*
  * Hardware revision info
  * Bit fields:
- * 31-8:  Reserved
- *  7-4:  Type of device:  see CSR_HW_REV_TYPE_xxx definitions
+ * 31-16:  Reserved
+ *  15-4:  Type of device:  see CSR_HW_REV_TYPE_xxx definitions
  *  3-2:  Revision step:  0 = A, 1 = B, 2 = C, 3 = D
  *  1-0:  "Dash" (-) value, as in A-1, etc.
- *
- * NOTE:  Revision step affects calculation of CCK txpower for 4965.
- * NOTE:  See also CSR_HW_REV_WA_REG (work-around for bug in 4965).
  */
 #define CSR_HW_REV              (CSR_BASE+0x028)
 
 
 
 /* HW REV */
-#define CSR_HW_REV_TYPE_MSK            (0x00001F0)
+#define CSR_HW_REV_DASH(_val)          (((_val) & 0x0000003) >> 0)
+#define CSR_HW_REV_STEP(_val)          (((_val) & 0x000000C) >> 2)
+
+#define CSR_HW_REV_TYPE_MSK            (0x000FFF0)
 #define CSR_HW_REV_TYPE_5300           (0x0000020)
 #define CSR_HW_REV_TYPE_5350           (0x0000030)
 #define CSR_HW_REV_TYPE_5100           (0x0000050)