wifi: rt2x00: correct wrong BBP register in RxDCOC calibration
authorShiji Yang <yangshiji66@outlook.com>
Thu, 9 Nov 2023 04:38:51 +0000 (12:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Feb 2024 20:14:18 +0000 (20:14 +0000)
[ Upstream commit 50da74e1e8b682853d1e07fc8bbe3a0774ae5e09 ]

Refer to Mediatek vendor driver RxDCOC_Calibration() function, when
performing gainfreeze calibration, we should write register 140
instead of 141. This fix can reduce the total calibration time from
6 seconds to 1 second.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/TYAP286MB0315B13B89DF57B6B27BB854BCAFA@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/ralink/rt2x00/rt2800lib.c

index e65cc00..c13ae87 100644 (file)
@@ -8695,7 +8695,7 @@ static void rt2800_rxdcoc_calibration(struct rt2x00_dev *rt2x00dev)
        rt2800_rfcsr_write_bank(rt2x00dev, 5, 4, saverfb5r4);
        rt2800_rfcsr_write_bank(rt2x00dev, 7, 4, saverfb7r4);
 
-       rt2800_bbp_write(rt2x00dev, 158, 141);
+       rt2800_bbp_write(rt2x00dev, 158, 140);
        bbpreg = rt2800_bbp_read(rt2x00dev, 159);
        bbpreg = bbpreg & (~0x40);
        rt2800_bbp_write(rt2x00dev, 159, bbpreg);