diff --git a/mt7915/init.c b/mt7915/init.c index dcdc5b9e..facd6046 100644 --- a/mt7915/init.c +++ b/mt7915/init.c @@ -567,7 +567,7 @@ static void mt7915_init_work(struct work_struct *work) mt7915_txbf_init(dev); } -static void mt7915_wfsys_reset(struct mt7915_dev *dev) +void mt7915_wfsys_reset(struct mt7915_dev *dev) { #define MT_MCU_DUMMY_RANDOM GENMASK(15, 0) #define MT_MCU_DUMMY_DEFAULT GENMASK(31, 16) @@ -656,8 +656,6 @@ mt7915_init_hardware(struct mt7915_dev *dev, struct mt7915_phy *phy2) INIT_WORK(&dev->init_work, mt7915_init_work); - mt7915_wfsys_reset(dev); - ret = mt7915_dma_init(dev, phy2); if (ret) return ret; diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h index fd05e07b..ca129e5e 100644 --- a/mt7915/mt7915.h +++ b/mt7915/mt7915.h @@ -429,6 +429,7 @@ static inline void mt7986_wmac_disable(struct mt7915_dev *dev) #endif struct mt7915_dev *mt7915_mmio_probe(struct device *pdev, void __iomem *mem_base, u32 device_id); +void mt7915_wfsys_reset(struct mt7915_dev *dev); irqreturn_t mt7915_irq_handler(int irq, void *dev_instance); u64 __mt7915_get_tsf(struct ieee80211_hw *hw, struct mt7915_vif *mvif); int mt7915_register_device(struct mt7915_dev *dev); diff --git a/mt7915/soc.c b/mt7915/soc.c index 04df47fd..5592e9ea 100644 --- a/mt7915/soc.c +++ b/mt7915/soc.c @@ -1160,6 +1160,7 @@ static int mt7986_wmac_probe(struct platform_device *pdev) if (ret) goto free_device; + mt7915_wfsys_reset(dev); mt76_wr(dev, MT_INT_MASK_CSR, 0); ret = mt7986_wmac_init(dev);