[PATCH] usb: Keep async schedule running only across mass storage xfers

Tom Rini trini at konsulko.com
Mon Apr 6 14:35:04 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]

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200406/59f68a95/attachment.sig>


More information about the U-Boot mailing list