[PATCH] usb: Keep async schedule running only across mass storage xfers
trini at konsulko.com
Fri Apr 10 01:23:26 CEST 2020
On Mon, Apr 06, 2020 at 02:29:44PM +0200, Marek Vasut wrote:
> 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 at gmail.com>
> Cc: Lukasz Majewski <lukma at denx.de>
> Cc: Tom Rini <trini at konsulko.com>
> Tested-by: Tom Rini <trini at konsulko.com> [omap3_beagle, previously failing]
Applied to u-boot/master, thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 659 bytes
Desc: not available
More information about the U-Boot