OpenCloudOS-Kernel/drivers/usb/host
Johan Hovold 9c6ad38d4e USB: xhci-plat: fix legacy PHY double init
commit 16b7e0cccb243033de4406ffb4d892365041a1e7 upstream.

Commits 7b8ef22ea5 ("usb: xhci: plat: Add USB phy support") and
9134c1fd05 ("usb: xhci: plat: Add USB 3.0 phy support") added support
for looking up legacy PHYs from the sysdev devicetree node and
initialising them.

This broke drivers such as dwc3 which manages PHYs themself as the PHYs
would now be initialised twice, something which specifically can lead to
resources being left enabled during suspend (e.g. with the
usb_phy_generic PHY driver).

As the dwc3 driver uses driver-name matching for the xhci platform
device, fix this by only looking up and initialising PHYs for devices
that have been matched using OF.

Note that checking that the platform device has a devicetree node would
currently be sufficient, but that could lead to subtle breakages in case
anyone ever tries to reuse an ancestor's node.

Fixes: 7b8ef22ea5 ("usb: xhci: plat: Add USB phy support")
Fixes: 9134c1fd05 ("usb: xhci: plat: Add USB 3.0 phy support")
Cc: stable@vger.kernel.org      # 4.1
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Stanley Chang <stanley_chang@realtek.com>
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Tested-by: Stefan Eichenberger <stefan.eichenberger@toradex.com>
Tested-by: Stanley Chang <stanley_chang@realtek.com>
Link: https://lore.kernel.org/r/20231103164323.14294-1-johan+linaro@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-12-03 07:33:09 +01:00
..
Kconfig usb: add HAS_IOPORT dependencies 2023-05-29 15:28:34 +01:00
Makefile usb: host: u132-hcd: Delete driver 2023-03-21 14:06:11 +01:00
bcma-hcd.c USB: bcma: Make GPIO explicitly optional 2022-11-08 16:39:56 +01:00
ehci-atmel.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-brcm.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-dbg.c usb: host: {e|o}hci-dbg: kill useless 'ret' variable initializers 2022-02-15 15:11:20 +01:00
ehci-exynos.c usb: ehci-exynos: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ehci-fsl.c usb: ehci-fsl: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-fsl.h
ehci-grlib.c usb: ehci-grlib: Convert to platform remove callback returning void 2023-05-28 12:36:28 +01:00
ehci-hcd.c usb: ehci: add workaround for chipidea PORTSC.PEC bug 2023-08-09 14:16:06 +02:00
ehci-hub.c usb: ehci: add workaround for chipidea PORTSC.PEC bug 2023-08-09 14:16:06 +02:00
ehci-mem.c
ehci-mv.c usb: ehci-mv: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ehci-npcm7xx.c usb: ehci-npcm7xx: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-omap.c usb: ehci-omap: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ehci-orion.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ehci-platform.c usb: ehci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ehci-ppc-of.c usb: ehci-ppc-of: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
ehci-ps3.c
ehci-q.c usb: ehci: Use endpoint in URB to get maxpacket 2022-08-31 09:07:53 +02:00
ehci-sched.c usb: host: ehci-sched: try to turn on io watchdog as long as periodic_count > 0 2023-08-12 10:03:22 +02:00
ehci-sh.c usb: host: Do not check for 0 return after calling platform_get_irq() 2023-08-04 14:46:53 +02:00
ehci-spear.c usb: ehci-spear: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ehci-st.c usb: ehci-st: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ehci-sysfs.c
ehci-timer.c
ehci-xilinx-of.c usb: ehci-xilinx-of: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
ehci.h usb: ehci: add workaround for chipidea PORTSC.PEC bug 2023-08-09 14:16:06 +02:00
fhci-dbg.c
fhci-hcd.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
fhci-hub.c USB: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
fhci-mem.c
fhci-q.c
fhci-sched.c
fhci-tds.c
fhci.h USB: FHCI: Switch to GPIO descriptors 2022-09-01 16:08:29 +02:00
fsl-mph-dr-of.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
isp116x-hcd.c usb: isp116x-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:29 +01:00
isp116x.h
isp1362-hcd.c usb: isp1362-hcd: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
isp1362.h
max3421-hcd.c usb: host: max3421-hcd: drop of_match_ptr for ID table 2023-03-16 12:15:23 +01:00
octeon-hcd.c usb: octeon-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:30 +01:00
octeon-hcd.h staging: octeon-usb: move driver out of staging 2022-06-21 16:43:37 +02:00
ohci-at91.c usb: ohci-at91: Fix the unhandle interrupt when resume 2023-07-30 13:26:09 +02:00
ohci-da8xx.c usb: ohci-da8xx: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ohci-dbg.c usb: host: {e|o}hci-dbg: kill useless 'ret' variable initializers 2022-02-15 15:11:20 +01:00
ohci-exynos.c usb: ohci-exynos: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ohci-hcd.c usb: remove ohci-tmio driver 2023-02-01 17:23:38 +01:00
ohci-hub.c
ohci-mem.c
ohci-nxp.c usb: ohci-nxp: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ohci-omap.c usb: ohci-omap: Convert to platform remove callback returning void 2023-05-28 12:36:30 +01:00
ohci-pci.c USB: Extend pci resume function to handle PM events 2023-05-13 17:33:18 +09:00
ohci-platform.c usb: host: ohci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:09 +02:00
ohci-ppc-of.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
ohci-ps3.c
ohci-pxa27x.c usb: ohci-pxa27x: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ohci-q.c
ohci-s3c2410.c usb: ohci-s3c2410: Convert to platform remove callback returning void 2023-05-28 12:36:31 +01:00
ohci-sa1111.c ARM: sa1100: remove unused board files 2023-01-12 10:53:12 +01:00
ohci-sm501.c USB: ohci-sm501: remove unnecessary check of mem 2023-08-12 10:03:16 +02:00
ohci-spear.c usb: ohci-spear: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
ohci-st.c usb: ohci-st: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
ohci.h
oxu210hp-hcd.c usb: oxu210hp-hcd: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:10 +02:00
pci-quirks.c usb: pci-quirks: Reduce the length of a spinlock section in usb_amd_find_chipset_info() 2023-03-29 09:02:19 +02:00
pci-quirks.h
r8a66597-hcd.c usb: r8a66597-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:31 +01:00
r8a66597.h
sl811-hcd.c usb: sl811-hcd: Convert to platform remove callback returning void 2023-05-28 12:36:32 +01:00
sl811.h
sl811_cs.c
ssb-hcd.c
uhci-debug.c
uhci-grlib.c usb: uhci-grlib: Convert to platform remove callback returning void 2023-05-28 12:36:32 +01:00
uhci-hcd.c usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hcd.h usb: uhci: handle HAS_IOPORT dependencies 2023-05-29 15:29:03 +01:00
uhci-hub.c
uhci-pci.c Merge 6.4-rc4 into usb-next 2023-05-28 15:25:53 +01:00
uhci-platform.c usb: uhci-platform: Use devm_platform_get_and_ioremap_resource() 2023-07-27 10:24:11 +02:00
uhci-q.c
xen-hcd.c xen: make remove callback of xen driver void returned 2022-12-15 16:06:10 +01:00
xhci-dbg.c
xhci-dbgcap.c xhci: dbc: Provide sysfs option to configure dbc descriptors 2023-03-23 17:25:22 +01:00
xhci-dbgcap.h xhci: dbc: Provide sysfs option to configure dbc descriptors 2023-03-23 17:25:22 +01:00
xhci-dbgtty.c tty: make tty_operations::write()'s count size_t 2023-08-11 21:12:46 +02:00
xhci-debugfs.c xhci: fix debugfs register accesses while suspended 2023-04-20 10:13:06 +02:00
xhci-debugfs.h
xhci-ext-caps.c
xhci-ext-caps.h
xhci-histb.c xhci: get rid of XHCI_PLAT quirk that used to prevent MSI setup 2023-06-13 11:34:50 +02:00
xhci-hub.c xhci: track port suspend state correctly in unsuccessful resume cases 2023-10-02 16:33:46 +02:00
xhci-mem.c xhci: Preserve RsvdP bits in ERSTBA register correctly 2023-10-02 16:33:46 +02:00
xhci-mtk-sch.c usb: xhci-mtk: fix bandwidth release issue 2022-08-19 10:39:08 +02:00
xhci-mtk.c usb: xhci-mtk: set the dma max_seg_size 2023-07-25 17:40:54 +02:00
xhci-mtk.h usb: xhci-mtk: add optional frame count clock 2023-04-20 10:13:39 +02:00
xhci-mvebu.c usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math 2023-02-06 13:46:42 +01:00
xhci-mvebu.h Revert "usb: host: xhci: mvebu: make USB 3.0 PHY optional for Armada 3720" 2022-02-25 19:12:21 +05:30
xhci-pci-renesas.c usb: renesas-xhci: Do not print any log while fw verif success 2022-07-27 14:37:48 +02:00
xhci-pci.c xhci: Enable RPM on controllers that support low-power states 2023-11-28 17:20:08 +00:00
xhci-pci.h
xhci-plat.c USB: xhci-plat: fix legacy PHY double init 2023-12-03 07:33:09 +01:00
xhci-plat.h usb: xhci-plat: Convert to platform remove callback returning void 2023-05-30 15:27:17 +01:00
xhci-rcar.c usb: Explicitly include correct DT includes 2023-07-25 18:20:02 +02:00
xhci-ring.c xhci: Clear EHB bit only at end of interrupt handler 2023-10-02 16:33:46 +02:00
xhci-rzv2m.c xhci: host: Add Renesas RZ/V2M SoC support 2023-01-25 15:48:17 +01:00
xhci-rzv2m.h xhci: host: Add Renesas RZ/V2M SoC support 2023-01-25 15:48:17 +01:00
xhci-tegra.c Merge 6.5-rc4 into usb-next 2023-07-31 09:36:55 +02:00
xhci-trace.c xhci: Move functions to setup msi to xhci-pci 2023-03-23 17:25:22 +01:00
xhci-trace.h xhci: Stop unnecessary tracking of free trbs in a ring 2023-06-13 11:34:50 +02:00
xhci.c usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present 2023-11-28 17:19:45 +00:00
xhci.h xhci: Preserve RsvdP bits in ERSTBA register correctly 2023-10-02 16:33:46 +02:00