diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/rtl8192ce/hw.c')
| -rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c index bd0da7ef290..dd4bb0950a5 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c @@ -994,8 +994,16 @@ static enum version_8192c _rtl92ce_read_chip_version(struct ieee80211_hw *hw)  		version = (value32 & TYPE_ID) ? VERSION_A_CHIP_92C :  			   VERSION_A_CHIP_88C;  	} else { -		version = (value32 & TYPE_ID) ? VERSION_B_CHIP_92C : -			   VERSION_B_CHIP_88C; +		version = (enum version_8192c) (CHIP_VER_B | +				((value32 & TYPE_ID) ? CHIP_92C_BITMASK : 0) | +				((value32 & VENDOR_ID) ? CHIP_VENDOR_UMC : 0)); +		if ((!IS_CHIP_VENDOR_UMC(version)) && (value32 & +		     CHIP_VER_RTL_MASK)) { +			version = (enum version_8192c)(version | +				   ((((value32 & CHIP_VER_RTL_MASK) == BIT(12)) +				   ? CHIP_VENDOR_UMC_B_CUT : CHIP_UNKNOWN) | +				   CHIP_VENDOR_UMC)); +		}  	}  	switch (version) {  |