1234567891011121314151617181920212223242526272829303132333435363738394041 |
- --- a/driver/wl_iw.c
- +++ b/driver/wl_iw.c
- @@ -314,7 +314,7 @@ wl_iw_get_name(
- )
- {
- 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 @@ wl_iw_get_name(
- 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:
|