Selaa lähdekoodia

rtl8xxxu: Fix LDPC RX hang issue on 8192eu

Implement workaround for LDPC RX hands on 8192eu. This was inspired by
workaround found in the 8192eu vendor driver.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Jes Sorensen 9 vuotta sitten
vanhempi
commit
e1394fe5f9
1 muutettua tiedostoa jossa 10 lisäystä ja 0 poistoa
  1. 10 0
      drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c

+ 10 - 0
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c

@@ -7234,6 +7234,16 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
 	/* ack for xmit mgmt frames. */
 	rtl8xxxu_write32(priv, REG_FWHW_TXQ_CTRL, val32);
 
+	if (priv->rtl_chip == RTL8192E) {
+		/*
+		 * Fix LDPC rx hang issue.
+		 */
+		val32 = rtl8xxxu_read32(priv, REG_AFE_MISC);
+		rtl8xxxu_write8(priv, REG_8192E_LDOV12_CTRL, 0x75);
+		val32 &= 0xfff00fff;
+		val32 |= 0x0007e000;
+		rtl8xxxu_write32(priv, REG_8192E_LDOV12_CTRL, val32);
+	}
 exit:
 	return ret;
 }