linux/drivers/usb/host
Dmitry Osipenko 62a7f62891 usb: host: ehci-tegra: Correct teardown order of driver's removal
I found that PHY's enable refcounting was broken and after fixing it
I also found that machine started to hang after EHCI driver module
removal. Turned out that the teardown order is incorrect because HCD must
be unregistered *before* PHY's disabling. Note that it is also not correct
to assert the shared reset during of driver's removal because PHY takes
care of resetting shared pads and thus it's better to remove that part
from the EHCI driver.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Link: https://lore.kernel.org/r/20200106013416.9604-3-digetx@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-09 11:15:31 +01:00
..
bcma-hcd.c USB: bcma: Add a check for devm_gpiod_get 2019-11-04 15:50:38 +01:00
ehci-atmel.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ehci-dbg.c USB: ehci-hcd: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
ehci-exynos.c usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
ehci-fsl.c usb: host: Stops USB controller init if PLL fails to lock 2019-07-03 18:52:20 +02:00
ehci-fsl.h usb: phy: Workaround for USB erratum-A005728 2019-07-03 18:52:20 +02:00
ehci-grlib.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci-hub.c USB: ehci-hcd: Add get_resuming_ports method 2018-06-25 21:44:43 +08:00
ehci-mem.c Revert "usb: host: ehci: Use dma_pool_zalloc()" 2018-05-04 14:35:12 -07:00
ehci-mv.c usb: ehci-mv: Fix missing iomem in cast 2020-01-08 17:55:25 +01:00
ehci-mxc.c
ehci-npcm7xx.c USB: host: ehci-npcm7xx: Fix some error codes in probe 2018-06-28 19:32:42 +09:00
ehci-omap.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ehci-orion.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ehci-pci.c usb: pci-quirks: Minor cleanup for AMD PLL quirk 2019-07-25 10:40:02 +02:00
ehci-platform.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ehci-pmcmsp.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci-ppc-of.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci-ps3.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci-q.c USB: EHCI: Do not return -EPIPE when hub is disconnected 2019-12-17 16:02:49 +01:00
ehci-sched.c usb: host: ehci-sched: remove redundant pointer dev 2018-07-13 15:41:56 +02:00
ehci-sh.c usb: host: ehci-sh: Remove unused platform data support 2019-12-10 11:34:27 +01:00
ehci-spear.c
ehci-st.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ehci-sysfs.c USB: move many drivers to use DEVICE_ATTR_RW 2018-01-24 08:49:51 +01:00
ehci-tegra.c usb: host: ehci-tegra: Correct teardown order of driver's removal 2020-01-09 11:15:31 +01:00
ehci-timer.c usb: host: Replace empty define with do while 2018-09-28 15:03:37 +02:00
ehci-xilinx-of.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ehci.h usb: host: Replace empty define with do while 2018-09-28 15:03:37 +02:00
fhci-dbg.c USB: fhci-hcd: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
fhci-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
fhci-hub.c
fhci-mem.c
fhci-q.c
fhci-sched.c usb: host: use usb_endpoint_maxp instead of usb_maxpacket 2019-04-19 14:23:34 +02:00
fhci-tds.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
fhci.h USB: fhci-hcd: no need to check return value of debugfs_create functions 2018-05-31 12:54:22 +02:00
fotg210-hcd.c usb: host: fotg210: add missed clk_put calls 2019-11-04 15:53:02 +01:00
fotg210.h usb: host: Replace empty define with do while 2018-09-28 15:03:37 +02:00
fsl-mph-dr-of.c usb :fsl: Change string format for errata property 2019-07-03 18:52:20 +02:00
imx21-dbg.c usb: host: imx21: create debugfs directory under usb root 2019-11-14 11:14:54 +08:00
imx21-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
imx21-hcd.h
isp116x-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
isp116x.h
isp1362-hcd.c usb: isp1362-hcd: use devm_platform_ioremap_resource() to simplify code 2019-10-04 14:09:40 +02:00
isp1362.h usb: isp1362: Spelling s/eclusive/exclusive/ 2019-06-18 08:51:28 +02:00
Kconfig usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
Makefile usb: remove ehci-w90x900 driver 2019-08-10 09:28:28 +02:00
max3421-hcd.c usb/max3421: remove the dummy {un,}map_urb_for_dma methods 2019-08-21 10:07:25 -07:00
ohci-at91.c USB: host: ohci-at91: Remove unused variable regs in at91_stop_hc 2019-10-15 20:01:59 +02:00
ohci-da8xx.c usb: ohci-da8xx: drop the vbus GPIO 2019-04-12 19:46:48 +05:30
ohci-dbg.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
ohci-exynos.c usb: exynos: Rename Samsung and Exynos to lowercase 2020-01-09 10:53:38 +01:00
ohci-hcd.c Merge 5.3-rc7 into usb-next 2019-09-02 19:31:18 +02:00
ohci-hub.c ohci-hcd: Fix race condition caused by ohci_urb_enqueue() and io_watchdog_func() 2018-02-15 18:43:57 +01:00
ohci-mem.c usb: host: Fix excessive alignment restriction for local memory allocations 2019-06-28 07:57:07 +02:00
ohci-nxp.c usb: ohci-nxp: fix use of integer as pointer 2019-11-04 15:50:38 +01:00
ohci-omap.c usb: add a flag to skip PHY initialization to struct usb_hcd 2018-03-09 09:43:52 -08:00
ohci-pci.c usb: pci-quirks: Minor cleanup for AMD PLL quirk 2019-07-25 10:40:02 +02:00
ohci-platform.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ohci-ppc-of.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ohci-ps3.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ohci-pxa27x.c usb: host: ohci-pxa27x: Fix and & vs | typo 2019-08-21 09:59:30 -07:00
ohci-q.c usb: ohci: Proper handling of ed_rm_list to handle race condition between usb_kill_urb() and finish_unlinks() 2018-02-15 18:45:34 +01:00
ohci-s3c2410.c usb: ohci-s3c2410: Remove set but not used variable 'hcd' 2019-06-03 15:21:57 +02:00
ohci-sa1111.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
ohci-sm501.c usb/ohci-sm501: remove the HCD_DMA flag 2019-09-03 15:25:52 +02:00
ohci-spear.c USB: ohci-spear: Remove set but not used variable 'ohci' 2019-06-03 15:21:57 +02:00
ohci-st.c usb: Remove dev_err() usage after platform_get_irq() 2019-07-30 20:29:18 +02:00
ohci-tmio.c usb/ohci-tmio: remove the HCD_DMA flag 2019-09-03 15:26:05 +02:00
ohci.h USB: use genalloc for USB HCs with local memory 2019-06-03 16:00:07 +02:00
oxu210hp-hcd.c usb: host: oxu210hp-hcd: fix gcc warning 2020-01-08 16:58:36 +01:00
pci-quirks.c PCI: Add PCI_STD_NUM_BARS for the number of standard BARs 2019-10-14 10:22:26 -05:00
pci-quirks.h usb: pci-quirks: Minor cleanup for AMD PLL quirk 2019-07-25 10:40:02 +02:00
r8a66597-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
r8a66597.h
sl811_cs.c
sl811-hcd.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
sl811.h
ssb-hcd.c
u132-hcd.c usb: host: u132-hcd: fix spelling mistake "overcurren" -> "overcurrent" 2019-10-04 14:09:41 +02:00
uhci-debug.c
uhci-grlib.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
uhci-hcd.c USB: drop HCD_LOCAL_MEM flag 2019-06-03 16:00:08 +02:00
uhci-hcd.h usb: uhci: Add clk support to uhci-platform 2018-01-17 15:08:56 +01:00
uhci-hub.c
uhci-pci.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
uhci-platform.c usb: add a HCD_DMA flag instead of guestimating DMA capabilities 2019-08-21 10:03:35 -07:00
uhci-q.c USB: remove the URB_NO_FSBR flag 2017-12-12 13:16:07 +01:00
xhci-dbg.c
xhci-dbgcap.c usb: host: Remove call to memset after dma_alloc_coherent 2019-07-25 11:10:54 +02:00
xhci-dbgcap.h usb: xhci: dbc: Add SPDX identifiers to dbc files 2018-05-24 18:03:07 +02:00
xhci-dbgtty.c usb: xhci: dbc: Use GFP_KERNEL instead of GFP_ATOMIC in 'xhci_dbc_alloc_requests()' 2019-09-03 15:49:11 +02:00
xhci-debugfs.c usb: xhci: fix __le32/__le64 accessors in debugfs code 2019-10-28 17:47:08 +01:00
xhci-debugfs.h usb: xhci: remove unused member 'parent' in xhci_regset struct 2019-02-20 20:18:23 +01:00
xhci-ext-caps.c xhci-ext-caps.c: Add missing platform_device_put() on error in xhci_create_intel_xhci_sw_pdev() 2019-10-04 14:37:53 +02:00
xhci-ext-caps.h xhci: Add Intel extended cap / otg phy mux handling 2018-03-22 13:40:10 +01:00
xhci-histb.c xhci: Fix leaking USB3 shared_hcd at xhci removal 2018-11-09 08:31:08 -08:00
xhci-hub.c xhci: make sure interrupts are restored to correct state 2019-12-11 15:32:19 +01:00
xhci-mem.c xhci: Fix memory leak in xhci_add_in_port() 2019-12-11 15:32:16 +01:00
xhci-mtk-sch.c usb: xhci-mtk: supports SSP without external USB3 gen2 hub 2018-09-28 15:04:45 +02:00
xhci-mtk.c usb: mtk-xhci: Do not explicitly set the DMA mask 2019-12-30 20:11:31 +01:00
xhci-mtk.h usb: xhci-mtk: add an optional xhci_ck clock 2019-08-28 22:50:25 +02:00
xhci-mvebu.c usb: host: xhci: mvebu: add reset on resume quirk 2019-01-30 09:22:35 +01:00
xhci-mvebu.h usb: host: xhci: mvebu: add reset on resume quirk 2019-01-30 09:22:35 +01:00
xhci-pci.c usb: xhci: Fix build warning seen with CONFIG_PM=n 2019-12-18 19:23:42 +01:00
xhci-plat.c usb: host: xhci-rcar: Add a helper macro to set xhci_plat_priv 2019-09-03 15:53:11 +02:00
xhci-plat.h usb: host: xhci-plat: add quirks member into struct xhci_plat_priv 2019-09-03 15:53:11 +02:00
xhci-rcar.c usb: host: xhci-rcar: Use xhci_plat_priv.quirks instead of code settings 2019-09-03 15:53:27 +02:00
xhci-rcar.h usb: host: xhci-rcar: Use xhci_plat_priv.quirks instead of code settings 2019-09-03 15:53:27 +02:00
xhci-ring.c xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour. 2019-12-11 15:32:19 +01:00
xhci-tegra.c usb: host: xhci-tegra: Implement basic ELPG support 2019-12-10 11:36:30 +01:00
xhci-trace.c
xhci-trace.h xhci: Add tracing for xhci doorbell register writes 2019-11-16 10:26:05 +01:00
xhci.c xhci: Increase STS_HALT timeout in xhci_suspend() 2019-12-11 15:32:18 +01:00
xhci.h usb: xhci: only set D3hot for pci device 2019-12-11 15:32:18 +01:00