Skip to content

Commit 9466794

Browse files
nbd168kuba-moo
authored andcommitted
net: ethernet: mtk_eth_soc: fix WED + wifi reset
The WLAN + WED reset sequence relies on being able to receive interrupts from the card, in order to synchronize individual steps with the firmware. When WED is stopped, leave interrupts running and rely on the driver turning off unwanted ones. WED DMA also needs to be disabled before resetting. Fixes: f78cd9c ("net: ethernet: mtk_wed: update mtk_wed_stop") Signed-off-by: Felix Fietkau <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent d362046 commit 9466794

File tree

1 file changed

+1
-5
lines changed

1 file changed

+1
-5
lines changed

drivers/net/ethernet/mediatek/mtk_wed.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1074,13 +1074,13 @@ mtk_wed_dma_disable(struct mtk_wed_device *dev)
10741074
static void
10751075
mtk_wed_stop(struct mtk_wed_device *dev)
10761076
{
1077+
mtk_wed_dma_disable(dev);
10771078
mtk_wed_set_ext_int(dev, false);
10781079

10791080
wed_w32(dev, MTK_WED_WPDMA_INT_TRIGGER, 0);
10801081
wed_w32(dev, MTK_WED_WDMA_INT_TRIGGER, 0);
10811082
wdma_w32(dev, MTK_WDMA_INT_MASK, 0);
10821083
wdma_w32(dev, MTK_WDMA_INT_GRP2, 0);
1083-
wed_w32(dev, MTK_WED_WPDMA_INT_MASK, 0);
10841084

10851085
if (!mtk_wed_get_rx_capa(dev))
10861086
return;
@@ -1093,7 +1093,6 @@ static void
10931093
mtk_wed_deinit(struct mtk_wed_device *dev)
10941094
{
10951095
mtk_wed_stop(dev);
1096-
mtk_wed_dma_disable(dev);
10971096

10981097
wed_clr(dev, MTK_WED_CTRL,
10991098
MTK_WED_CTRL_WDMA_INT_AGENT_EN |
@@ -2605,9 +2604,6 @@ mtk_wed_irq_get(struct mtk_wed_device *dev, u32 mask)
26052604
static void
26062605
mtk_wed_irq_set_mask(struct mtk_wed_device *dev, u32 mask)
26072606
{
2608-
if (!dev->running)
2609-
return;
2610-
26112607
mtk_wed_set_ext_int(dev, !!mask);
26122608
wed_w32(dev, MTK_WED_INT_MASK, mask);
26132609
}

0 commit comments

Comments
 (0)