mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
mt7603: reset DMA scheduler on MT7628
Should improve stability Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -1282,6 +1282,15 @@ static void mt7603_pse_client_reset(struct mt7603_dev *dev)
|
||||
MT_CLIENT_RESET_TX_R_E_2);
|
||||
}
|
||||
|
||||
static void mt7603_dma_sched_reset(struct mt7603_dev *dev)
|
||||
{
|
||||
if (!is_mt7628(dev))
|
||||
return;
|
||||
|
||||
mt76_set(dev, MT_SCH_4, MT_SCH_4_RESET);
|
||||
mt76_clear(dev, MT_SCH_4, MT_SCH_4_RESET);
|
||||
}
|
||||
|
||||
static void mt7603_mac_watchdog_reset(struct mt7603_dev *dev)
|
||||
{
|
||||
int beacon_int = dev->beacon_int;
|
||||
@@ -1330,6 +1339,8 @@ static void mt7603_mac_watchdog_reset(struct mt7603_dev *dev)
|
||||
for (i = 0; i < ARRAY_SIZE(dev->mt76.q_rx); i++)
|
||||
mt76_queue_rx_reset(dev, i);
|
||||
|
||||
mt7603_dma_sched_reset(dev);
|
||||
|
||||
mt7603_mac_dma_start(dev);
|
||||
|
||||
mt7603_irq_enable(dev, mask);
|
||||
|
||||
@@ -88,6 +88,7 @@
|
||||
#define MT_SCH_4 MT_HIF(0x594)
|
||||
#define MT_SCH_4_FORCE_QID GENMASK(4, 0)
|
||||
#define MT_SCH_4_BYPASS BIT(5)
|
||||
#define MT_SCH_4_RESET BIT(8)
|
||||
|
||||
#define MT_GROUP_THRESH_BASE MT_HIF(0x598)
|
||||
#define MT_GROUP_THRESH(n) (MT_GROUP_THRESH_BASE + ((n) * 4))
|
||||
|
||||
Reference in New Issue
Block a user