mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	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
		
			
				
	
	
		
			42 lines
		
	
	
		
			790 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			790 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- 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:
 |