Patch "PCI: mt7621: Delay phy ports initialization" 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

    PCI: mt7621: Delay phy ports initialization

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:
     pci-mt7621-delay-phy-ports-initialization.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 617c012ce97331e344f08e3c52e5a479dc905e5b
Author: Sergio Paracuellos <sergio.paracuellos@xxxxxxxxx>
Date:   Sat Dec 31 08:40:41 2022 +0100

    PCI: mt7621: Delay phy ports initialization
    
    [ Upstream commit 0cb2a8f3456ff1cc51d571e287a48e8fddc98ec2 ]
    
    Some devices like ZBT WE1326 and ZBT WF3526-P and some Netgear models need
    to delay phy port initialization after calling the mt7621_pcie_init_port()
    driver function to get into reliable boots for both warm and hard resets.
    
    The delay required to detect the ports seems to be in the range [75-100]
    milliseconds.
    
    If the ports are not detected the controller is not functional.
    
    There is no datasheet or something similar to really understand why this
    extra delay is needed only for these devices and it is not for most of
    the boards that are built on mt7621 SoC.
    
    This issue has been reported by openWRT community and the complete
    discussion is in [0]. The 100 milliseconds delay has been tested in all
    devices to validate it.
    
    Add the extra 100 milliseconds delay to fix the issue.
    
    [0]: https://github.com/openwrt/openwrt/pull/11220
    
    Link: https://lore.kernel.org/r/20221231074041.264738-1-sergio.paracuellos@xxxxxxxxx
    Fixes: 2bdd5238e756 ("PCI: mt7621: Add MediaTek MT7621 PCIe host controller driver")
    Signed-off-by: Sergio Paracuellos <sergio.paracuellos@xxxxxxxxx>
    Signed-off-by: Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/pci/controller/pcie-mt7621.c b/drivers/pci/controller/pcie-mt7621.c
index ee7aad09d6277..63a5f4463a9f6 100644
--- a/drivers/pci/controller/pcie-mt7621.c
+++ b/drivers/pci/controller/pcie-mt7621.c
@@ -60,6 +60,7 @@
 #define PCIE_PORT_LINKUP		BIT(0)
 #define PCIE_PORT_CNT			3
 
+#define INIT_PORTS_DELAY_MS		100
 #define PERST_DELAY_MS			100
 
 /**
@@ -369,6 +370,7 @@ static int mt7621_pcie_init_ports(struct mt7621_pcie *pcie)
 		}
 	}
 
+	msleep(INIT_PORTS_DELAY_MS);
 	mt7621_pcie_reset_ep_deassert(pcie);
 
 	tmp = NULL;



[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