From 7168d59902cb2afab64016b128f24d8c01a0ea70 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 21 Mar 2017 14:47:01 +0100 Subject: [PATCH] mt7603: reset PSE queue hang indicator bits Signed-off-by: Felix Fietkau --- mt7603_mac.c | 4 +++- mt7603_regs.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mt7603_mac.c b/mt7603_mac.c index b6b812ee..8e4ed07a 100644 --- a/mt7603_mac.c +++ b/mt7603_mac.c @@ -1018,7 +1018,7 @@ void mt7603_mac_reset(struct mt7603_dev *dev) if (!mt76_poll_msec(dev, MT_PSE_RESET, MT_PSE_RESET_SW_S, MT_PSE_RESET_SW_S, 500)) { mt76_clear(dev, MT_PSE_RESET, MT_PSE_RESET_SW); - return; + goto out; } mt76_clear(dev, MT_PSE_RESET, MT_PSE_RESET_SW_S); @@ -1036,6 +1036,8 @@ void mt7603_mac_reset(struct mt7603_dev *dev) mt76_clear(dev, addr + MT_CLIENT_RESET_TX, MT_CLIENT_RESET_TX_R_E_1 | MT_CLIENT_RESET_TX_R_E_2); +out: + mt76_clear(dev, MT_PSE_RESET, MT_PSE_RESET_QUEUES); } void mt7603_mac_dma_start(struct mt7603_dev *dev) diff --git a/mt7603_regs.h b/mt7603_regs.h index a5415192..a0822521 100644 --- a/mt7603_regs.h +++ b/mt7603_regs.h @@ -106,6 +106,7 @@ #define MT_PSE_RESET MT_PSE(0x16c) #define MT_PSE_RESET_SW BIT(0) #define MT_PSE_RESET_SW_S BIT(1) +#define MT_PSE_RESET_QUEUES GENMASK(6, 2) #define MT_PSE_FC_P0 MT_PSE(0x120) #define MT_PSE_FC_P0_MIN_RESERVE GENMASK(11, 0)