[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a35ba8dc-fd4a-41ae-9ad7-7702f4f48980@korsgaard.com>
Date: Mon, 18 Nov 2024 17:00:30 +0100
From: Peter Korsgaard <peter@...sgaard.com>
To: Radhey Shyam Pandey <radhey.shyam.pandey@....com>,
Thinh.Nguyen@...opsys.com, gregkh@...uxfoundation.org, michal.simek@....com,
robert.hancock@...ian.com
Cc: linux-usb@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, git@....com, Neal Frager
<neal.frager@....com>, stable@...r.kernel.org
Subject: Re: [PATCH v2] usb: dwc3: xilinx: make sure pipe clock is deselected
in usb2 only mode
On 11/18/24 16:08, Radhey Shyam Pandey wrote:
> From: Neal Frager <neal.frager@....com>
>
> When the USB3 PHY is not defined in the Linux device tree, there could
> still be a case where there is a USB3 PHY is active on the board and
2nd "is " should be dropped. This sounds a bit confusing to me as the
PHY is on-chip on zynqmp, maybe you are referring to a reference clock
input to the PS-GTR instead?
> enabled by the first stage bootloader. If serdes clock is being used
> then the USB will fail to enumerate devices in 2.0 only mode.
>
> To solve this, make sure that the PIPE clock is deselected whenever the
> USB3 PHY is not defined and guarantees that the USB2 only mode will work
> in all cases.
>
> Fixes: 9678f3361afc ("usb: dwc3: xilinx: Skip resets and USB3 register settings for USB2.0 mode")
> Cc: stable@...r.kernel.org
> Signed-off-by: Neal Frager <neal.frager@....com>
> Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@....com>
> ---
> Changes for v2:
> - Add stable@...r.kernel.org in CC.
Other than that looks good, thanks.
Acked-by: Peter Korsgaard <peter@...sgaard.com>
> ---
> drivers/usb/dwc3/dwc3-xilinx.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c
> index e3738e1610db..a33a42ba0249 100644
> --- a/drivers/usb/dwc3/dwc3-xilinx.c
> +++ b/drivers/usb/dwc3/dwc3-xilinx.c
> @@ -121,8 +121,11 @@ static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx *priv_data)
> * in use but the usb3-phy entry is missing from the device tree.
> * Therefore, skip these operations in this case.
> */
> - if (!priv_data->usb3_phy)
> + if (!priv_data->usb3_phy) {
> + /* Deselect the PIPE Clock Select bit in FPD PIPE Clock register */
> + writel(PIPE_CLK_DESELECT, priv_data->regs + XLNX_USB_FPD_PIPE_CLK);
> goto skip_usb3_phy;
> + }
>
> crst = devm_reset_control_get_exclusive(dev, "usb_crst");
> if (IS_ERR(crst)) {
>
> base-commit: 744cf71b8bdfcdd77aaf58395e068b7457634b2c
--
Bye, Peter Korsgaard
Powered by blists - more mailing lists