Re: Patch "usb: dwc3: xilinx: Skip resets and USB3 register settings for USB2.0 mode" has been added to the 5.16-stable tree

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

 



On Sat, 2022-01-29 at 17:24 +0100, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> This is a note to let you know that I've just added the patch titled
> 
>     usb: dwc3: xilinx: Skip resets and USB3 register settings for USB2.0 mode
> 
> to the 5.16-stable tree which can be found at:
>     
> https://urldefense.com/v3/__http://www.kernel.org/git/?p=linux*kernel*git*stable*stable-queue.git;a=summary__;Ly8vLw!!IOGos0k!zf9QJvY84EtqUpdi6VflkIp1CJqnnCaQoiGGvZ8KORysjiM44hQecYjVySxsuD6OjZA$
>  
> 
> The filename of the patch is:
>      usb-dwc3-xilinx-skip-resets-and-usb3-register-settings-for-usb2.0-
> mode.patch
> and it can be found in the queue-5.16 subdirectory.
> 
> If you, or anyone else, feels it should not be added to the stable tree,
> please let <stable@xxxxxxxxxxxxxxx> know about it.

Hi Greg,

This patch should likely only go into stable along with the follow-up patch I
posted (or something equivalent):

https://patchwork.kernel.org/project/linux-usb/patch/20220127221500.177021-1-robert.hancock@xxxxxxxxxx/

Otherwise it will cause a regression.

> 
> 
> From 9678f3361afc27a3124cd2824aec0227739986fb Mon Sep 17 00:00:00 2001
> From: Robert Hancock <robert.hancock@xxxxxxxxxx>
> Date: Tue, 25 Jan 2022 18:02:50 -0600
> Subject: usb: dwc3: xilinx: Skip resets and USB3 register settings for USB2.0
> mode
> 
> From: Robert Hancock <robert.hancock@xxxxxxxxxx>
> 
> commit 9678f3361afc27a3124cd2824aec0227739986fb upstream.
> 
> It appears that the PIPE clock should not be selected when only USB 2.0
> is being used in the design and no USB 3.0 reference clock is used.
> Also, the core resets are not required if a USB3 PHY is not in use, and
> will break things if USB3 is actually used but the PHY entry is not
> listed in the device tree.
> 
> Skip core resets and register settings that are only required for
> USB3 mode when no USB3 PHY is specified in the device tree.
> 
> Fixes: 84770f028fab ("usb: dwc3: Add driver for Xilinx platforms")
> Cc: stable <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Robert Hancock <robert.hancock@xxxxxxxxxx>
> Link: 
> https://urldefense.com/v3/__https://lore.kernel.org/r/20220126000253.1586760-2-robert.hancock@calian.com__;!!IOGos0k!zf9QJvY84EtqUpdi6VflkIp1CJqnnCaQoiGGvZ8KORysjiM44hQecYjVySxsMI6yBj4$
>  
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
>  drivers/usb/dwc3/dwc3-xilinx.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> --- a/drivers/usb/dwc3/dwc3-xilinx.c
> +++ b/drivers/usb/dwc3/dwc3-xilinx.c
> @@ -110,6 +110,18 @@ static int dwc3_xlnx_init_zynqmp(struct
>  		usb3_phy = NULL;
>  	}
>  
> +	/*
> +	 * The following core resets are not required unless a USB3 PHY
> +	 * is used, and the subsequent register settings are not required
> +	 * unless a core reset is performed (they should be set properly
> +	 * by the first-stage boot loader, but may be reverted by a core
> +	 * reset). They may also break the configuration if USB3 is actually
> +	 * in use but the usb3-phy entry is missing from the device tree.
> +	 * Therefore, skip these operations in this case.
> +	 */
> +	if (!usb3_phy)
> +		goto skip_usb3_phy;
> +
>  	crst = devm_reset_control_get_exclusive(dev, "usb_crst");
>  	if (IS_ERR(crst)) {
>  		ret = PTR_ERR(crst);
> @@ -188,6 +200,7 @@ static int dwc3_xlnx_init_zynqmp(struct
>  		goto err;
>  	}
>  
> +skip_usb3_phy:
>  	/*
>  	 * This routes the USB DMA traffic to go through FPD path instead
>  	 * of reaching DDR directly. This traffic routing is needed to
> 
> 
> Patches currently in stable-queue which might be from 
> robert.hancock@xxxxxxxxxx are
> 
> queue-5.16/serial-8250-of-fix-mapped-region-size-when-using-reg-offset-
> property.patch
> queue-5.16/usb-dwc3-xilinx-skip-resets-and-usb3-register-settings-for-usb2.0-
> mode.patch
> queue-5.16/usb-dwc3-xilinx-fix-error-handling-when-getting-usb3-phy.patch




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux