Commit 8915c3ce authored by Lorenzo Bianconi's avatar Lorenzo Bianconi Committed by Felix Fietkau

mt76: mt7615: introduce __mt7663_load_firmware routine

Introduce __mt7663_load_firmware routine to load firmware for usb
devices.
Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 8f93af9c
...@@ -2078,12 +2078,10 @@ static int mt7663_load_n9(struct mt7615_dev *dev, const char *name) ...@@ -2078,12 +2078,10 @@ static int mt7663_load_n9(struct mt7615_dev *dev, const char *name)
return ret; return ret;
} }
static int mt7663_load_firmware(struct mt7615_dev *dev) int __mt7663_load_firmware(struct mt7615_dev *dev)
{ {
int ret; int ret;
mt76_set(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_BYPASS_TX_SCH);
ret = mt76_get_field(dev, MT_CONN_ON_MISC, MT_TOP_MISC2_FW_N9_RDY); ret = mt76_get_field(dev, MT_CONN_ON_MISC, MT_TOP_MISC2_FW_N9_RDY);
if (ret) { if (ret) {
dev_dbg(dev->mt76.dev, "Firmware is already download\n"); dev_dbg(dev->mt76.dev, "Firmware is already download\n");
...@@ -2109,12 +2107,26 @@ static int mt7663_load_firmware(struct mt7615_dev *dev) ...@@ -2109,12 +2107,26 @@ static int mt7663_load_firmware(struct mt7615_dev *dev)
return -EIO; return -EIO;
} }
mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_BYPASS_TX_SCH);
dev_dbg(dev->mt76.dev, "Firmware init done\n"); dev_dbg(dev->mt76.dev, "Firmware init done\n");
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(__mt7663_load_firmware);
static int mt7663_load_firmware(struct mt7615_dev *dev)
{
int ret;
mt76_set(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_BYPASS_TX_SCH);
ret = __mt7663_load_firmware(dev);
if (ret)
return ret;
mt76_clear(dev, MT_WPDMA_GLO_CFG, MT_WPDMA_GLO_CFG_BYPASS_TX_SCH);
return 0;
}
int mt7615_mcu_init(struct mt7615_dev *dev) int mt7615_mcu_init(struct mt7615_dev *dev)
{ {
......
...@@ -462,5 +462,6 @@ int mt7615_mcu_set_sku_en(struct mt7615_phy *phy, bool enable); ...@@ -462,5 +462,6 @@ int mt7615_mcu_set_sku_en(struct mt7615_phy *phy, bool enable);
int mt7615_dfs_init_radar_detector(struct mt7615_phy *phy); int mt7615_dfs_init_radar_detector(struct mt7615_phy *phy);
int mt7615_init_debugfs(struct mt7615_dev *dev); int mt7615_init_debugfs(struct mt7615_dev *dev);
int __mt7663_load_firmware(struct mt7615_dev *dev);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment