aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2013-11-11 21:58:19 +0000
committerHauke Mehrtens <hauke@hauke-m.de>2013-11-11 21:58:19 +0000
commit40e8eb2dda9ada0133e020d2c47bd8b8e02645df (patch)
treeeaea57099056a3bc27e7b55a6cd2b98e4229b993 /package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch
parentcac4ccca2f064a29c640db2eba90b7f8de271a41 (diff)
downloadupstream-40e8eb2dda9ada0133e020d2c47bd8b8e02645df.tar.gz
upstream-40e8eb2dda9ada0133e020d2c47bd8b8e02645df.tar.bz2
upstream-40e8eb2dda9ada0133e020d2c47bd8b8e02645df.zip
broadcom-wl: fix band reporting
Modify the band reporting for broadcom devices to correctly report HW capability. Currently, 802.11na devices report "bgn"; but should be reporting "an". Signed-off-by: Nathan Hintz <nlhintz@hotmail.com> SVN-Revision: 38749
Diffstat (limited to 'package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch')
-rw-r--r--package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch b/package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch
new file mode 100644
index 0000000000..f1305a45d2
--- /dev/null
+++ b/package/kernel/broadcom-wl/patches/014-fix-band-reporting.patch
@@ -0,0 +1,41 @@
+--- a/driver/wl_iw.c
++++ b/driver/wl_iw.c
+@@ -314,7 +314,7 @@
+ )
+ {
+ int phytype, err;
+- uint band[3];
++ uint i, band[3], bands;
+ char cap[5];
+
+ WL_TRACE(("%s: SIOCGIWNAME\n", dev->name));
+@@ -335,16 +335,20 @@
+ break;
+ case WLC_PHY_TYPE_LP:
+ case WLC_PHY_TYPE_G:
+- if (band[0] >= 2)
+- strcpy(cap, "abg");
+- else
+- strcpy(cap, "bg");
+- break;
+ case WLC_PHY_TYPE_N:
+- if (band[0] >= 2)
+- strcpy(cap, "abgn");
+- else
+- strcpy(cap, "bgn");
++ bands = 0;
++ for (i = 1; i <= band[0]; i++) {
++ bands |= dtoh32(band[i]);
++ }
++ strcpy(cap, "");
++ if (bands & WLC_BAND_5G)
++ strcat(cap, "a");
++ if (bands & WLC_BAND_2G)
++ strcat(cap, "bg");
++ if (phytype == WLC_PHY_TYPE_N)
++ strcat(cap, "n");
++ break;
++ default:
+ break;
+ }
+ done: