iwinfo: detect HT PHY for broadcom-wl

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

git-svn-id: svn+ssh://svn.openwrt.org/openwrt/trunk@42760 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2014-10-05 10:26:10 +00:00 committed by Jo-Philipp Wich
parent fe7133f7e5
commit 9853abe33a
2 changed files with 5 additions and 4 deletions

View file

@ -55,6 +55,7 @@
#define WLC_PHY_TYPE_G 2 #define WLC_PHY_TYPE_G 2
#define WLC_PHY_TYPE_N 4 #define WLC_PHY_TYPE_N 4
#define WLC_PHY_TYPE_LP 5 #define WLC_PHY_TYPE_LP 5
#define WLC_PHY_TYPE_HT 7
#define WLC_BAND_5G 1 #define WLC_BAND_5G 1
#define WLC_BAND_2G 2 #define WLC_BAND_2G 2

View 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)) && if (!wl_ioctl(ifname, WLC_GET_PHYTYPE, &phytype, sizeof(phytype)) &&
!wl_ioctl(ifname, WLC_GET_BANDLIST, band, sizeof(band))) !wl_ioctl(ifname, WLC_GET_BANDLIST, band, sizeof(band)))
{ {
*buf = 0;
switch (phytype) switch (phytype)
{ {
case WLC_PHY_TYPE_A: case WLC_PHY_TYPE_A:
@ -600,15 +601,16 @@ static int wl_get_hwmodelist(const char *ifname, int *buf)
case WLC_PHY_TYPE_B: case WLC_PHY_TYPE_B:
*buf = IWINFO_80211_B; *buf = IWINFO_80211_B;
break; break;
case WLC_PHY_TYPE_HT:
case WLC_PHY_TYPE_N:
*buf |= IWINFO_80211_N;
case WLC_PHY_TYPE_LP: case WLC_PHY_TYPE_LP:
case WLC_PHY_TYPE_G: case WLC_PHY_TYPE_G:
case WLC_PHY_TYPE_N:
bands = 0; bands = 0;
for (i = 1; i <= band[0]; i++) for (i = 1; i <= band[0]; i++)
{ {
bands |= band[i]; bands |= band[i];
} }
*buf = 0;
if (bands & WLC_BAND_5G) if (bands & WLC_BAND_5G)
*buf |= IWINFO_80211_A; *buf |= IWINFO_80211_A;
if (bands & WLC_BAND_2G) 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_B;
*buf |= IWINFO_80211_G; *buf |= IWINFO_80211_G;
} }
if (phytype == WLC_PHY_TYPE_N)
*buf |= IWINFO_80211_N;
break; break;
default: default:
return -1; return -1;