rtl8xxxu: Fix rtl8723bu driver reload issue
authorJes Sorensen <Jes.Sorensen@redhat.com>
Fri, 30 Sep 2016 23:35:17 +0000 (19:35 -0400)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 7 Oct 2016 11:23:50 +0000 (14:23 +0300)
The generic disable_rf() function clears bits 22 and 23 in
REG_RX_WAIT_CCA, however we did not re-enable them again in
rtl8723b_enable_rf()

This resolves the problem for me with 8723bu devices not working again
after reloading the driver.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Cc: stable@vger.kernel.org # 4.7+
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c

index 6c086b5657e94845b4362860620185828d7c3e2c..02b8ddd98a95d207323dcac13d514c0b987c5afe 100644 (file)
@@ -1498,6 +1498,10 @@ static void rtl8723b_enable_rf(struct rtl8xxxu_priv *priv)
        u32 val32;
        u8 val8;
 
+       val32 = rtl8xxxu_read32(priv, REG_RX_WAIT_CCA);
+       val32 |= (BIT(22) | BIT(23));
+       rtl8xxxu_write32(priv, REG_RX_WAIT_CCA, val32);
+
        /*
         * No indication anywhere as to what 0x0790 does. The 2 antenna
         * vendor code preserves bits 6-7 here.