blob: b231fed98db63fe8226d570bde5a963545c167ce [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001--- a/driver/wl_iw.c
2+++ b/driver/wl_iw.c
3@@ -314,7 +314,7 @@ wl_iw_get_name(
4 )
5 {
6 int phytype, err;
7- uint band[3];
8+ uint i, band[3], bands;
9 char cap[5];
10
11 WL_TRACE(("%s: SIOCGIWNAME\n", dev->name));
12@@ -335,16 +335,20 @@ wl_iw_get_name(
13 break;
14 case WLC_PHY_TYPE_LP:
15 case WLC_PHY_TYPE_G:
16- if (band[0] >= 2)
17- strcpy(cap, "abg");
18- else
19- strcpy(cap, "bg");
20- break;
21 case WLC_PHY_TYPE_N:
22- if (band[0] >= 2)
23- strcpy(cap, "abgn");
24- else
25- strcpy(cap, "bgn");
26+ bands = 0;
27+ for (i = 1; i <= band[0]; i++) {
28+ bands |= dtoh32(band[i]);
29+ }
30+ strcpy(cap, "");
31+ if (bands & WLC_BAND_5G)
32+ strcat(cap, "a");
33+ if (bands & WLC_BAND_2G)
34+ strcat(cap, "bg");
35+ if (phytype == WLC_PHY_TYPE_N)
36+ strcat(cap, "n");
37+ break;
38+ default:
39 break;
40 }
41 done: