mt76: mt7915: fix polling firmware-own status
authorFelix Fietkau <nbd@nbd.name>
Mon, 23 Nov 2020 13:06:50 +0000 (14:06 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:39:14 +0000 (09:39 +0100)
[ Upstream commit 71bb496ce17f6976c8a75b054861781965b07ac0 ]

Check the register status bit instead of the trigger bit

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7915/mcu.c
drivers/net/wireless/mediatek/mt76/mt7915/regs.h

index e9d854e3293e4bd2be1a884e7e324a4ec5653220..1c900454cf58c0132068d3213e241b3d8641bdcd 100644 (file)
@@ -2689,7 +2689,7 @@ static int mt7915_driver_own(struct mt7915_dev *dev)
 {
        mt76_wr(dev, MT_TOP_LPCR_HOST_BAND0, MT_TOP_LPCR_HOST_DRV_OWN);
        if (!mt76_poll_msec(dev, MT_TOP_LPCR_HOST_BAND0,
-                           MT_TOP_LPCR_HOST_FW_OWN, 0, 500)) {
+                           MT_TOP_LPCR_HOST_FW_OWN_STAT, 0, 500)) {
                dev_err(dev->mt76.dev, "Timeout for driver own\n");
                return -EIO;
        }
index a213b5cb82f81324b5c3434e9bb546871769f7f2..f4101cc9f9eb14540df9f8fa8d6a8b743eb692fa 100644 (file)
 #define MT_TOP_LPCR_HOST_BAND0         MT_TOP(0x10)
 #define MT_TOP_LPCR_HOST_FW_OWN                BIT(0)
 #define MT_TOP_LPCR_HOST_DRV_OWN       BIT(1)
+#define MT_TOP_LPCR_HOST_FW_OWN_STAT   BIT(2)
 
 #define MT_TOP_MISC                    MT_TOP(0xf0)
 #define MT_TOP_MISC_FW_STATE           GENMASK(2, 0)