]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
mt76: mt7615: fix mt7615_driver_own routine
authorLorenzo Bianconi <lorenzo@kernel.org>
Mon, 20 Apr 2020 20:40:55 +0000 (22:40 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jun 2020 07:32:43 +0000 (09:32 +0200)
[ Upstream commit 338061619185133f56ac17365deb1e75eaecc604 ]

Introduce MT_PCIE_DOORBELL_PUSH register to fix mt7615_driver_own
routine for mt7663e

Fixes: f40ac0f3d3c0 ("mt76: mt7615: introduce mt7663e support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/regs.h

index 0d56e0834bdedb2c62ead186f6a5a13d6b5c2075..29a7aaabb6da1e876e3f699caf28c93485b2b94f 100644 (file)
@@ -1526,16 +1526,20 @@ static void mt7622_trigger_hif_int(struct mt7615_dev *dev, bool en)
 
 static int mt7615_driver_own(struct mt7615_dev *dev)
 {
+       struct mt76_dev *mdev = &dev->mt76;
        u32 addr;
 
-       addr = is_mt7663(&dev->mt76) ? MT_CONN_HIF_ON_LPCTL : MT_CFG_LPCR_HOST;
+       addr = is_mt7663(mdev) ? MT_PCIE_DOORBELL_PUSH : MT_CFG_LPCR_HOST;
        mt76_wr(dev, addr, MT_CFG_LPCR_HOST_DRV_OWN);
 
        mt7622_trigger_hif_int(dev, true);
+
+       addr = is_mt7663(mdev) ? MT_CONN_HIF_ON_LPCTL : MT_CFG_LPCR_HOST;
        if (!mt76_poll_msec(dev, addr, MT_CFG_LPCR_HOST_FW_OWN, 0, 3000)) {
                dev_err(dev->mt76.dev, "Timeout for driver own\n");
                return -EIO;
        }
+
        mt7622_trigger_hif_int(dev, false);
 
        return 0;
index f7c2a633841c736a14a0dba6fc00f6fe23460022..de0ef165c0ba625e0b94130d00152cdc4839d936 100644 (file)
@@ -65,6 +65,7 @@ enum mt7615_reg_base {
 #define MT_HIF2_BASE                   0xf0000
 #define MT_HIF2(ofs)                   (MT_HIF2_BASE + (ofs))
 #define MT_PCIE_IRQ_ENABLE             MT_HIF2(0x188)
+#define MT_PCIE_DOORBELL_PUSH          MT_HIF2(0x1484)
 
 #define MT_CFG_LPCR_HOST               MT_HIF(0x1f0)
 #define MT_CFG_LPCR_HOST_FW_OWN                BIT(0)