From 38bae1d3039bfc5034627e00b93b1095de6d4b58 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 21 Mar 2017 14:44:39 +0100 Subject: [PATCH] mt7603: improve reliability of the PSE reset Signed-off-by: Felix Fietkau --- mt7603_mac.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mt7603_mac.c b/mt7603_mac.c index 615ba1b6..b6b812ee 100644 --- a/mt7603_mac.c +++ b/mt7603_mac.c @@ -1013,9 +1013,13 @@ void mt7603_mac_reset(struct mt7603_dev *dev) u32 addr = mt7603_reg_map(dev, MT_CLIENT_BASE_PHYS_ADDR); /* Reset PSE */ + mt76_clear(dev, MT_PSE_RESET, MT_PSE_RESET_SW_S); mt76_set(dev, MT_PSE_RESET, MT_PSE_RESET_SW); - mt76_poll_msec(dev, MT_PSE_RESET, MT_PSE_RESET_SW_S, - MT_PSE_RESET_SW_S, 500); + 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; + } mt76_clear(dev, MT_PSE_RESET, MT_PSE_RESET_SW_S); mt76_set(dev, addr + MT_CLIENT_RESET_TX, MT_CLIENT_RESET_TX_R_E_1);