Skip to content

Commit

Permalink
mt76: mt7915: fix unexpected firmware mode
Browse files Browse the repository at this point in the history
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: Chih-Min Chen <chih-min.chen@mediatek.com>
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
Chih-Min authored and nbd168 committed Sep 4, 2020
1 parent e22c65c commit bab866a
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
6 changes: 6 additions & 0 deletions mt7915/init.c
Expand Up @@ -137,6 +137,12 @@ static int mt7915_init_hardware(struct mt7915_dev *dev)

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);
if (ret)
return ret;
Expand Down
7 changes: 7 additions & 0 deletions mt7915/regs.h
Expand Up @@ -365,6 +365,13 @@
#define MT_HIF_REMAP_L2_BASE GENMASK(31, 12)
#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(ofs) (MT_TOP_BASE + (ofs))

Expand Down

0 comments on commit bab866a

Please sign in to comment.