Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2f109c8e authored by Jes Sorensen's avatar Jes Sorensen Committed by Kalle Valo
Browse files

rtl8xxxu: Group chip quirks together



Group chip quirks together instead of having them scattered all over
in the init code.

Signed-off-by: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 7e9567ff
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -6028,18 +6028,6 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
	if (ret)
		goto exit;

	/* Fix USB interface interference issue */
	if (priv->rtlchip == 0x8723a) {
		rtl8xxxu_write8(priv, 0xfe40, 0xe0);
		rtl8xxxu_write8(priv, 0xfe41, 0x8d);
		rtl8xxxu_write8(priv, 0xfe42, 0x80);
		rtl8xxxu_write32(priv, REG_TXDMA_OFFSET_CHK, 0xfd0320);
	} else {
		val32 = rtl8xxxu_read32(priv, REG_TXDMA_OFFSET_CHK);
		val32 |= TXDMA_OFFSET_DROP_DATA_EN;
		rtl8xxxu_write32(priv, REG_TXDMA_OFFSET_CHK, val32);
	}

	/* Solve too many protocol error on USB bus */
	/* Can't do this for 8188/8192 UMC A cut parts */
	if (priv->rtlchip == 0x8723a ||
@@ -6127,11 +6115,25 @@ static int rtl8xxxu_init_device(struct ieee80211_hw *hw)
	if (ret)
		goto exit;

	if (priv->rtlchip == 0x8723a) { /* Reduce 80M spur */
	/*
	 * Chip specific quirks
	 */
	if (priv->rtlchip == 0x8723a) {
		/* Fix USB interface interference issue */
		rtl8xxxu_write8(priv, 0xfe40, 0xe0);
		rtl8xxxu_write8(priv, 0xfe41, 0x8d);
		rtl8xxxu_write8(priv, 0xfe42, 0x80);
		rtl8xxxu_write32(priv, REG_TXDMA_OFFSET_CHK, 0xfd0320);

		/* Reduce 80M spur */
		rtl8xxxu_write32(priv, REG_AFE_XTAL_CTRL, 0x0381808d);
		rtl8xxxu_write32(priv, REG_AFE_PLL_CTRL, 0xf0ffff83);
		rtl8xxxu_write32(priv, REG_AFE_PLL_CTRL, 0xf0ffff82);
		rtl8xxxu_write32(priv, REG_AFE_PLL_CTRL, 0xf0ffff83);
	} else {
		val32 = rtl8xxxu_read32(priv, REG_TXDMA_OFFSET_CHK);
		val32 |= TXDMA_OFFSET_DROP_DATA_EN;
		rtl8xxxu_write32(priv, REG_TXDMA_OFFSET_CHK, val32);
	}

	if (!macpower){