Commit d3c07a9e authored by Chih-Min Chen's avatar Chih-Min Chen Committed by Felix Fietkau

mt76: mt7915: fix unexpected firmware mode

Avoid firmware falling into spectrum mode since that will set
unexpected PSE/PLE thresholds which lead to Tx hang.

This mode should be cleaned before firmware download stage.
Signed-off-by: default avatarChih-Min Chen <chih-min.chen@mediatek.com>
Signed-off-by: default avatarRyder Lee <ryder.lee@mediatek.com>
Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 9e47a683
...@@ -135,6 +135,12 @@ static int mt7915_init_hardware(struct mt7915_dev *dev) ...@@ -135,6 +135,12 @@ static int mt7915_init_hardware(struct mt7915_dev *dev)
set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state); set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state);
/*
* force firmware operation mode into normal state,
* which should be set before firmware download stage.
*/
mt76_wr(dev, MT_SWDEF_MODE, MT_SWDEF_NORMAL_MODE);
ret = mt7915_mcu_init(dev); ret = mt7915_mcu_init(dev);
if (ret) if (ret)
return ret; return ret;
......
...@@ -360,6 +360,13 @@ ...@@ -360,6 +360,13 @@
#define MT_HIF_REMAP_L2_BASE GENMASK(31, 12) #define MT_HIF_REMAP_L2_BASE GENMASK(31, 12)
#define MT_HIF_REMAP_BASE_L2 0x00000 #define MT_HIF_REMAP_BASE_L2 0x00000
#define MT_SWDEF_BASE 0x41f200
#define MT_SWDEF(ofs) (MT_SWDEF_BASE + (ofs))
#define MT_SWDEF_MODE MT_SWDEF(0x3c)
#define MT_SWDEF_NORMAL_MODE 0
#define MT_SWDEF_ICAP_MODE 1
#define MT_SWDEF_SPECTRUM_MODE 2
#define MT_TOP_BASE 0x18060000 #define MT_TOP_BASE 0x18060000
#define MT_TOP(ofs) (MT_TOP_BASE + (ofs)) #define MT_TOP(ofs) (MT_TOP_BASE + (ofs))
......
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