iwlwifi: fix FAT channel config for 5000 series
authorReinette Chatre <reinette.chatre@intel.com>
Tue, 10 Feb 2009 23:19:04 +0000 (15:19 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 13 Feb 2009 18:46:08 +0000 (13:46 -0500)
The test to find out if we have FAT channels do not consider that
the value of regulatory_bands for the 5000 series is larger than its
eeprom size. Using the eeprom size is strange in itself.

Use a new EEPROM_REGULATORY_BAND_NO_FAT to indicate no FAT support
and test for that explicitly.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Samuel Ortiz <samuel.ortiz@intel.com>
Tested-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-3945.c
drivers/net/wireless/iwlwifi/iwl-eeprom.c
drivers/net/wireless/iwlwifi/iwl-eeprom.h

index d2df494..d49e48b 100644 (file)
@@ -2738,8 +2738,8 @@ static struct iwl_lib_ops iwl3945_lib = {
                        EEPROM_REGULATORY_BAND_3_CHANNELS,
                        EEPROM_REGULATORY_BAND_4_CHANNELS,
                        EEPROM_REGULATORY_BAND_5_CHANNELS,
-                       IWL3945_EEPROM_IMG_SIZE,
-                       IWL3945_EEPROM_IMG_SIZE,
+                       EEPROM_REGULATORY_BAND_NO_FAT,
+                       EEPROM_REGULATORY_BAND_NO_FAT,
                },
                .verify_signature  = iwlcore_eeprom_verify_signature,
                .acquire_semaphore = iwl3945_eeprom_acquire_semaphore,
index d1d1d9b..75517d0 100644 (file)
@@ -532,10 +532,10 @@ int iwl_init_channel_map(struct iwl_priv *priv)
        }
 
        /* Check if we do have FAT channels */
-       if (priv->cfg->ops->lib->eeprom_ops.regulatory_bands[5] >=
-           priv->cfg->eeprom_size &&
-           priv->cfg->ops->lib->eeprom_ops.regulatory_bands[6] >=
-           priv->cfg->eeprom_size)
+       if (priv->cfg->ops->lib->eeprom_ops.regulatory_bands[5] ==
+           EEPROM_REGULATORY_BAND_NO_FAT &&
+           priv->cfg->ops->lib->eeprom_ops.regulatory_bands[6] ==
+           EEPROM_REGULATORY_BAND_NO_FAT)
                return 0;
 
        /* Two additional EEPROM bands for 2.4 and 5 GHz FAT channels */
index 17fed49..3479153 100644 (file)
@@ -370,6 +370,8 @@ struct iwl_eeprom_calib_info {
  */
 #define EEPROM_4965_REGULATORY_BAND_52_FAT_CHANNELS (2*0xA8)   /* 22 bytes */
 
+#define EEPROM_REGULATORY_BAND_NO_FAT                  (0)
+
 struct iwl_eeprom_ops {
        const u32 regulatory_bands[7];
        int (*verify_signature) (struct iwl_priv *priv);