|
|
@@ -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:
|