u-boot-brain/drivers/usb/host
Marek Vasut 31232de07e usb: Keep async schedule running only across mass storage xfers
Rather than keeping the asynchronous schedule running always, keep it
running only across USB mass storage transfers for now, as it seems
that keeping it running all the time interferes with certain control
transfers during device enumeration.

Note that running the async schedule all the time should not be an
issue, especially on EHCI HCD, as that one implements most of the
transfers using async schedule.

Note that we have usb_disable_asynch(), which however is utterly broken.
The usb_disable_asynch() blocks the USB core from doing async transfers
by setting a global flag. The async schedule should however be disabled
per USB controller. Moreover, setting a global flag does not prevent the
controller from using the async schedule, which e.g. the EHCI HCD does.

This patch implements additional callback to the controller, which
permits it to lock the async schedule and keep it running across
multiple transfers. Once the schedule is unlocked, it must also be
disabled. This thus prevents the async schedule from running outside
of the USB mass storage transfers.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Lukasz Majewski <lukma@denx.de>
Cc: Tom Rini <trini@konsulko.com>
Tested-by: Tom Rini <trini@konsulko.com> [omap3_beagle, previously failing]
2020-04-09 15:26:59 -04:00
..
dwc2.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
dwc2.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dwc3-of-simple.c usb: dwc3-of-simple: Add support for RK3399 2019-07-19 11:11:09 +08:00
dwc3-sti-glue.c regmap: clean up regmap allocation 2018-05-07 15:15:27 -04:00
ehci-armada100.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-atmel.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
ehci-exynos.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-faraday.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-fsl.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
ehci-generic.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
ehci-hcd.c usb: Keep async schedule running only across mass storage xfers 2020-04-09 15:26:59 -04:00
ehci-marvell.c usb: s/CONFIG_DM_USB/CONFIG_IS_ENABLED(DM_USB)/ 2018-11-26 21:19:03 +01:00
ehci-msm.c usb: ehci-msm: Add init_after_reset for CI_UDC 2018-09-30 13:00:37 -04:00
ehci-mx5.c USB: DM: Convert i.MX5 ehci code to driver model 2019-04-25 17:03:25 +02:00
ehci-mx6.c ehci-mx6: Update EHCI driver to support OTG0 on i.MX7ULP 2019-10-24 15:31:13 +02:00
ehci-mxc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-mxs.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-omap.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-pci.c usb: s/CONFIG_DM_USB/CONFIG_IS_ENABLED(DM_USB)/ 2018-11-26 21:19:03 +01:00
ehci-rmobile.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
ehci-spear.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-tegra.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-vct.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci-vf.c usb: s/CONFIG_DM_USB/CONFIG_IS_ENABLED(DM_USB)/ 2018-11-26 21:19:03 +01:00
ehci-zynq.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ehci.h usb: Keep async schedule running only across mass storage xfers 2020-04-09 15:26:59 -04:00
Kconfig ehci-mx6: Update EHCI driver to support OTG0 on i.MX7ULP 2019-10-24 15:31:13 +02:00
Makefile usb: host: remove the xhci-zynqmp driver 2019-10-24 11:28:16 +02:00
ohci-at91.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ohci-da8xx.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
ohci-ep93xx.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ohci-generic.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
ohci-hcd.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
ohci-lpc32xx.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ohci-pci.c usb, ohci, pci: add DM support for PCI-based OHCI USB controller 2019-08-08 11:35:02 +02:00
ohci.h usb, ohci: fix ohci swap register access 2019-08-08 11:35:02 +02:00
r8a66597-hcd.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
r8a66597.h usb: r8a66597: Add optional DM VBUS regulator support 2019-08-22 18:23:36 +02:00
sl811-hcd.c usb: Add nonblock argument to submit_int_msg 2019-09-11 10:11:29 +02:00
sl811.h drivers/usb: regorganisation 2009-04-06 20:40:46 +02:00
usb-sandbox.c usb: Add nonblock argument to submit_int_msg 2019-09-11 10:11:29 +02:00
usb-uclass.c usb: Keep async schedule running only across mass storage xfers 2020-04-09 15:26:59 -04:00
utmi-armada100.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
xhci-dwc3.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-exynos5.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-fsl.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-mem.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
xhci-mvebu.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-omap.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-pci.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci-rcar-r8a779x_usb3_v3.h usb: xhci: Add Renesas R-Car xHCI driver 2017-11-26 02:22:36 +01:00
xhci-rcar.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
xhci-ring.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
xhci-rockchip.c usb: xhci: move xhci.h to include usb 2019-10-24 11:28:17 +02:00
xhci.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00