mwifiex: check firmware capabilities while initialising 5GHz band parameters
authorAmitkumar Karwar <akarwar@marvell.com>
Thu, 28 Apr 2011 02:13:11 +0000 (19:13 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 28 Apr 2011 18:53:23 +0000 (14:53 -0400)
There are some SD8787 cards which don't support 5GHz band.
Therefore initialise 5GHz band parameters only if hardware
supports the band.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwifiex/cfg80211.c

index b99ae2677d78982266105f73ba873df02a9d6723..58557556212701894023a673a78f487998fe8f4f 100644 (file)
@@ -1235,20 +1235,23 @@ int mwifiex_register_cfg80211(struct net_device *dev, u8 *mac,
        wdev->wiphy->max_scan_ssids = 10;
        wdev->wiphy->interface_modes =
                BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
+
        wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &mwifiex_band_2ghz;
-       wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &mwifiex_band_5ghz;
+       mwifiex_setup_ht_caps(
+               &wdev->wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap, priv);
+
+       if (priv->adapter->config_bands & BAND_A) {
+               wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = &mwifiex_band_5ghz;
+               mwifiex_setup_ht_caps(
+                       &wdev->wiphy->bands[IEEE80211_BAND_5GHZ]->ht_cap, priv);
+       } else {
+               wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = NULL;
+       }
 
        /* Initialize cipher suits */
        wdev->wiphy->cipher_suites = mwifiex_cipher_suites;
        wdev->wiphy->n_cipher_suites = ARRAY_SIZE(mwifiex_cipher_suites);
 
-       /* Initialize parameters for 2GHz band */
-
-       mwifiex_setup_ht_caps(&wdev->wiphy->bands[IEEE80211_BAND_2GHZ]->ht_cap,
-                                                                       priv);
-       mwifiex_setup_ht_caps(&wdev->wiphy->bands[IEEE80211_BAND_5GHZ]->ht_cap,
-                                                                       priv);
-
        memcpy(wdev->wiphy->perm_addr, mac, 6);
        wdev->wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM;