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+rene...@gmail.com>
> Cc: Lukasz Majewski <lu...@denx.de>
> Cc: Tom Rini <tr...@konsulko.com>
> Tested-by: Tom Rini <tr...@konsulko.com> [omap3_beagle, previously failing]

Applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to