iwinfo: detect HT PHY for broadcom-wl
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sun, 5 Oct 2014 10:26:10 +0000 (10:26 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Mon, 27 Oct 2014 12:48:23 +0000 (13:48 +0100)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn+ssh://svn.openwrt.org/openwrt/trunk@42760 3c298f89-4303-0410-b956-a3cf2f4a3e73

api/broadcom.h
iwinfo_wl.c

index c7aa33e41524980fff9ecdb89b9c59b3cc7c1da7..672083cc798c6c8b65707192c16c1b2f1549b353 100644 (file)
@@ -55,6 +55,7 @@
 #define WLC_PHY_TYPE_G                         2
 #define WLC_PHY_TYPE_N                         4
 #define WLC_PHY_TYPE_LP                                5
+#define WLC_PHY_TYPE_HT                                7
 
 #define WLC_BAND_5G                            1
 #define WLC_BAND_2G                            2
index b626b285bbd2ccb01d5bea61ffd947b611111f76..57e4acf00292b4e534886f3b4a511619a5485143 100644 (file)
@@ -592,6 +592,7 @@ static int wl_get_hwmodelist(const char *ifname, int *buf)
        if (!wl_ioctl(ifname, WLC_GET_PHYTYPE, &phytype, sizeof(phytype)) &&
                !wl_ioctl(ifname, WLC_GET_BANDLIST, band, sizeof(band)))
        {
+               *buf = 0;
                switch (phytype)
                {
                        case WLC_PHY_TYPE_A:
@@ -600,15 +601,16 @@ static int wl_get_hwmodelist(const char *ifname, int *buf)
                        case WLC_PHY_TYPE_B:
                                *buf = IWINFO_80211_B;
                                break;
+                       case WLC_PHY_TYPE_HT:
+                       case WLC_PHY_TYPE_N:
+                               *buf |= IWINFO_80211_N;
                        case WLC_PHY_TYPE_LP:
                        case WLC_PHY_TYPE_G:
-                       case WLC_PHY_TYPE_N:
                                bands = 0;
                                for (i = 1; i <= band[0]; i++)
                                {
                                        bands |= band[i];
                                }
-                               *buf = 0;
                                if (bands & WLC_BAND_5G)
                                        *buf |= IWINFO_80211_A;
                                if (bands & WLC_BAND_2G)
@@ -616,8 +618,6 @@ static int wl_get_hwmodelist(const char *ifname, int *buf)
                                        *buf |= IWINFO_80211_B;
                                        *buf |= IWINFO_80211_G;
                                }
-                               if (phytype == WLC_PHY_TYPE_N)
-                                       *buf |= IWINFO_80211_N;
                                break;
                        default:
                                return -1;