Commit 5c7d3744 authored by Felix Fietkau's avatar Felix Fietkau
Browse files

mt76: mt7615: fix entering driver-own state on mt7663



Fixes hardware wakeup issues

Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 45387363
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -292,12 +292,20 @@ static int mt7615_mcu_drv_pmctrl(struct mt7615_dev *dev)
	u32 addr;
	int err;

	addr = is_mt7663(mdev) ? MT_PCIE_DOORBELL_PUSH : MT_CFG_LPCR_HOST;
	if (is_mt7663(mdev)) {
		/* Clear firmware own via N9 eint */
		mt76_wr(dev, MT_PCIE_DOORBELL_PUSH, MT_CFG_LPCR_HOST_DRV_OWN);
		mt76_poll(dev, MT_CONN_ON_MISC, MT_CFG_LPCR_HOST_FW_OWN, 0, 3000);

		addr = MT_CONN_HIF_ON_LPCTL;
	} else {
		addr = 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;
	err = !mt76_poll_msec(dev, addr, MT_CFG_LPCR_HOST_FW_OWN, 0, 3000);

	mt7622_trigger_hif_int(dev, false);