diff --git a/mt7915/mac.c b/mt7915/mac.c index cf77ce0c..b890a58d 100644 --- a/mt7915/mac.c +++ b/mt7915/mac.c @@ -1388,6 +1388,8 @@ mt7915_mac_restart(struct mt7915_dev *dev) if (dev_is_pci(mdev->dev)) { mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); if (dev->hif2) { + mt76_wr(dev, MT_PCIE_RECOG_ID, + dev->hif2->index | MT_PCIE_RECOG_ID_SEM); if (is_mt7915(mdev)) mt76_wr(dev, MT_PCIE1_MAC_INT_ENABLE, 0xff); else diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h index ac0b1f0e..5fe872ef 100644 --- a/mt7915/mt7915.h +++ b/mt7915/mt7915.h @@ -191,6 +191,7 @@ struct mt7915_hif { struct device *dev; void __iomem *regs; int irq; + u32 index; }; struct mt7915_phy { diff --git a/mt7915/pci.c b/mt7915/pci.c index 39132894..07b0a576 100644 --- a/mt7915/pci.c +++ b/mt7915/pci.c @@ -42,6 +42,7 @@ static struct mt7915_hif *mt7915_pci_get_hif2(u32 idx) continue; get_device(hif->dev); + hif->index = idx; goto out; } hif = NULL;