Patch "arm64: dts: imx8dxl-evk: Disable hibernation mode of AR8031 for EQOS" has been added to the 6.2-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

    arm64: dts: imx8dxl-evk: Disable hibernation mode of AR8031 for EQOS

to the 6.2-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:
     arm64-dts-imx8dxl-evk-disable-hibernation-mode-of-ar.patch
and it can be found in the queue-6.2 subdirectory.

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



commit 91a4ba07287f726e5a341901020b3025cd333bec
Author: Wei Fang <wei.fang@xxxxxxx>
Date:   Fri Dec 16 09:14:34 2022 +0800

    arm64: dts: imx8dxl-evk: Disable hibernation mode of AR8031 for EQOS
    
    [ Upstream commit 0deefb5bd1382aae0aed7c8b266d5088a5308a26 ]
    
    The hibernation mode of AR8031 PHY defaults to be enabled after hardware
    reset. When the cable is unplugged, the PHY will enter hibernation mode
    after about 10 senconds and the PHY clocks will be stopped to save
    power. However, due to the design of EQOS, the mac needs the RX_CLK of
    PHY for software reset to complete. Otherwise the software reset of EQOS
    will be failed and do not work correctly. The only way is to disable
    hibernation mode of AR8031 PHY for EQOS, the "qca,disable-hibernation-mode"
    property is used for this purpose and has already been submitted to the
    upstream, for more details please refer to the below link:
    https://lore.kernel.org/netdev/20220818030054.1010660-2-wei.fang@xxxxxxx/
    
    This issue is easy to reproduce, just unplug the cable and "ifconfig eth0
    down", after about 10 senconds, then "ifconfig eth0 up", you will see
    failure log on the serial port. The log is shown as following:
    root@imx8dxlevk:~#
    [34.941970] imx-dwmac 5b050000.ethernet eth0: Link is Down
    root@imx8dxlevk:~# ifconfig eth0 down
    [35.437814] imx-dwmac 5b050000.ethernet eth0: FPE workqueue stop
    [35.507913] imx-dwmac 5b050000.ethernet eth0: PHY [stmmac-1:00] driver [Qualcomm Atheros AR8031/AR8033] (irq=POLL)
    [35.518613] imx-dwmac 5b050000.ethernet eth0: configuring for phy/rgmii-id link mode
    root@imx8dxlevk:~# ifconfig eth0 up
    [71.143044] imx-dwmac 5b050000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
    [71.215855] imx-dwmac 5b050000.ethernet eth0: PHY [stmmac-1:00] driver [Qualcomm Atheros AR8031/AR8033] (irq=POLL)
    [72.230417] imx-dwmac 5b050000.ethernet: Failed to reset the dma
    [72.236512] imx-dwmac 5b050000.ethernet eth0: stmmac_hw_setup: DMA engine initialization failed
    [72.245258] imx-dwmac 5b050000.ethernet eth0: __stmmac_open: Hw setup failed
    SIOCSIFFLAGS: Connection timed out
    
    After applying this patch, the software reset of EQOS will be
    successful. And the log is shown as below.
    root@imx8dxlevk:~# ifconfig eth0 up
    [96.114344] imx-dwmac 5b050000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0
    [96.171466] imx-dwmac 5b050000.ethernet eth0: PHY [stmmac-1:00] driver [Qualcomm Atheros AR8031/AR8033] (irq=POLL)
    [96.188883] imx-dwmac 5b050000.ethernet eth0: No Safety Features support found
    [96.196221] imx-dwmac 5b050000.ethernet eth0: IEEE 1588-2008 Advanced Timestamp supported
    [96.204846] imx-dwmac 5b050000.ethernet eth0: registered PTP clock
    [96.225558] imx-dwmac 5b050000.ethernet eth0: FPE workqueue start
    [96.236858] imx-dwmac 5b050000.ethernet eth0: configuring for phy/rgmii-id link mode
    [96.249358] 8021q: adding VLAN 0 to HW filter on device eth0
    
    Signed-off-by: Wei Fang <wei.fang@xxxxxxx>
    Reviewed-by: Clark Wang <xiaoning.wang@xxxxxxx>
    Signed-off-by: Shawn Guo <shawnguo@xxxxxxxxxx>
    Stable-dep-of: feafeb53140a ("arm64: dts: imx8dxl-evk: Fix eqos phy reset gpio")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
index 280a9c9d8bd98..1bcf228a22b8b 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
@@ -135,6 +135,7 @@ ethphy0: ethernet-phy@0 {
 			reg = <0>;
 			eee-broken-1000t;
 			qca,disable-smarteee;
+			qca,disable-hibernation-mode;
 			vddio-supply = <&vddio0>;
 
 			vddio0: vddio-regulator {



[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