| From f1b00f4dab29b57bdf1bc03ef12020b280fd2a72 Mon Sep 17 00:00:00 2001 |
| From: Forest Bond <forest.bond@rapidrollout.com> |
| Date: Fri, 13 Jul 2012 12:26:06 -0400 |
| Subject: rtlwifi: rtl8192de: Fix phy-based version calculation |
| |
| From: Forest Bond <forest.bond@rapidrollout.com> |
| |
| commit f1b00f4dab29b57bdf1bc03ef12020b280fd2a72 upstream. |
| |
| Commit d83579e2a50ac68389e6b4c58b845c702cf37516 incorporated some |
| changes from the vendor driver that made it newly important that the |
| calculated hardware version correctly include the CHIP_92D bit, as all |
| of the IS_92D_* macros were changed to depend on it. However, this bit |
| was being unset for dual-mac, dual-phy devices. The vendor driver |
| behavior was modified to not do this, but unfortunately this change was |
| not picked up along with the others. This caused scanning in the 2.4GHz |
| band to be broken, and possibly other bugs as well. |
| |
| This patch brings the version calculation logic in parity with the |
| vendor driver in this regard, and in doing so fixes the regression. |
| However, the version calculation code in general continues to be largely |
| incoherent and messy, and needs to be cleaned up. |
| |
| Signed-off-by: Forest Bond <forest.bond@rapidrollout.com> |
| Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/rtlwifi/rtl8192de/phy.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c |
| +++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c |
| @@ -3345,21 +3345,21 @@ void rtl92d_phy_config_macphymode_info(s |
| switch (rtlhal->macphymode) { |
| case DUALMAC_SINGLEPHY: |
| rtlphy->rf_type = RF_2T2R; |
| - rtlhal->version |= CHIP_92D_SINGLEPHY; |
| + rtlhal->version |= RF_TYPE_2T2R; |
| rtlhal->bandset = BAND_ON_BOTH; |
| rtlhal->current_bandtype = BAND_ON_2_4G; |
| break; |
| |
| case SINGLEMAC_SINGLEPHY: |
| rtlphy->rf_type = RF_2T2R; |
| - rtlhal->version |= CHIP_92D_SINGLEPHY; |
| + rtlhal->version |= RF_TYPE_2T2R; |
| rtlhal->bandset = BAND_ON_BOTH; |
| rtlhal->current_bandtype = BAND_ON_2_4G; |
| break; |
| |
| case DUALMAC_DUALPHY: |
| rtlphy->rf_type = RF_1T1R; |
| - rtlhal->version &= (~CHIP_92D_SINGLEPHY); |
| + rtlhal->version &= RF_TYPE_1T1R; |
| /* Now we let MAC0 run on 5G band. */ |
| if (rtlhal->interfaceindex == 0) { |
| rtlhal->bandset = BAND_ON_5G; |