Patch "wifi: mt76: mt7921e: fix probe timeout after reboot" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: mt76: mt7921e: fix probe timeout after reboot

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-mt76-mt7921e-fix-probe-timeout-after-reboot.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9c00e8f523e5526f643c695bbde5b0cf7c46901e
Author: Quan Zhou <quan.zhou@xxxxxxxxxxxx>
Date:   Sat Mar 18 15:41:12 2023 +0800

    wifi: mt76: mt7921e: fix probe timeout after reboot
    
    [ Upstream commit c397fc1e6365a2a9e5540a85b2c1d4ea412aa0e2 ]
    
    In system warm reboot scene, due to the polling timeout(now 1000us)
    is too short to wait dma idle in time, it may make driver probe fail
    with error code -ETIMEDOUT. Meanwhile, we also found the dma may take
    around 70ms to enter idle state. Change the polling idle timeout to
    100ms to avoid the probabilistic probe fail.
    
    Tested pass with 5000 times warm reboot on x86 platform.
    
    [4.477496] pci 0000:01:00.0: attach allowed to drvr mt7921e [internal device]
    [4.478306] mt7921e 0000:01:00.0: ASIC revision: 79610010
    [4.480063] mt7921e: probe of 0000:01:00.0 failed with error -110
    
    Fixes: 0a1059d0f060 ("mt76: mt7921: move mt7921_dma_reset in dma.c")
    Signed-off-by: Quan Zhou <quan.zhou@xxxxxxxxxxxx>
    Signed-off-by: Deren Wu <deren.wu@xxxxxxxxxxxx>
    Signed-off-by: Felix Fietkau <nbd@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/dma.c b/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
index d1f10f6d9adc3..dc4ccfef4b048 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7921/dma.c
@@ -90,9 +90,9 @@ static int mt7921_dma_disable(struct mt7921_dev *dev, bool force)
 		   MT_WFDMA0_GLO_CFG_OMIT_RX_INFO |
 		   MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2);
 
-	if (!mt76_poll(dev, MT_WFDMA0_GLO_CFG,
-		       MT_WFDMA0_GLO_CFG_TX_DMA_BUSY |
-		       MT_WFDMA0_GLO_CFG_RX_DMA_BUSY, 0, 1000))
+	if (!mt76_poll_msec_tick(dev, MT_WFDMA0_GLO_CFG,
+				 MT_WFDMA0_GLO_CFG_TX_DMA_BUSY |
+				 MT_WFDMA0_GLO_CFG_RX_DMA_BUSY, 0, 100, 1))
 		return -ETIMEDOUT;
 
 	return 0;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux