Patch "phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on" has been added to the 6.0-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

    phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on

to the 6.0-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:
     phy-marvell-phy-mvebu-a3700-comphy-reset-comphy-regi.patch
and it can be found in the queue-6.0 subdirectory.

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



commit dfaa1a27ac8d58c43cd507df86c93233208c631d
Author: Pali Rohár <pali@xxxxxxxxxx>
Date:   Tue Sep 20 14:11:54 2022 +0200

    phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 power on
    
    [ Upstream commit b01d622d76134e9401970ffd3fbbb9a7051f976a ]
    
    Turris MOX board with older ARM Trusted Firmware version v1.5 is not able
    to detect any USB 3.0 device connected to USB-A port on Mox-A module after
    commit 0a6fc70d76bd ("phy: marvell: phy-mvebu-a3700-comphy: Remove broken
    reset support"). On the other hand USB 2.0 devices connected to the same
    USB-A port are working fine.
    
    It looks as if the older firmware configures COMPHY registers for USB 3.0
    somehow incompatibly for kernel driver. Experiments show that resetting
    COMPHY registers via setting SFT_RST auto-clearing bit in COMPHY_SFT_RESET
    register fixes this issue.
    
    Reset the COMPHY in mvebu_a3700_comphy_usb3_power_on() function as a first
    step after selecting COMPHY lane and USB 3.0 function. With this change
    Turris MOX board can successfully detect USB 3.0 devices again.
    
    Before the above mentioned commit this reset was implemented in PHY reset
    method, so this is the reason why there was no issue with older firmware
    version then.
    
    Fixes: 0a6fc70d76bd ("phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support")
    Reported-by: Marek Behún <kabel@xxxxxxxxxx>
    Signed-off-by: Pali Rohár <pali@xxxxxxxxxx>
    Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx>
    Link: https://lore.kernel.org/r/20220920121154.30115-1-pali@xxxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
index 67712c77d806..d641b345afa3 100644
--- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
+++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c
@@ -826,6 +826,9 @@ mvebu_a3700_comphy_usb3_power_on(struct mvebu_a3700_comphy_lane *lane)
 	if (ret)
 		return ret;
 
+	/* COMPHY register reset (cleared automatically) */
+	comphy_lane_reg_set(lane, COMPHY_SFT_RESET, SFT_RST, SFT_RST);
+
 	/*
 	 * 0. Set PHY OTG Control(0x5d034), bit 4, Power up OTG module The
 	 * register belong to UTMI module, so it is set in UTMI phy driver.



[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