[PATCH] fastboot: release usb_gadget on reboot commands
marex at denx.de
Tue Jul 26 15:36:14 CEST 2022
On 7/26/22 10:25, Mattijs Korpershoek wrote:
>>>> implementation, which would cover all such odd states for every other
>>>> USB UDC mode of operation, not just fastboot ?
>>> Implementing a platform_reset to reset the usb controller also works.
>>> I discussed this with Neil at  and he suggested to send the f_fastboot.c fix
>>> (this one) because it's generic and might fix issues for other boards.
>>> So, should I abandon this version and go with the platform specific fix instead ?
>>>  https://gitlab.com/baylibre/amlogic/atv/u-boot/-/commit/94c79b8226875babc20311cac7dac30e79238c9d#note_1020214136
>> If your controller is responsible for causing the platform to fail to
>> reboot, then I think it makes sense to do a fix either in the reset
>> implementation for that platform, or the controller driver.
> To be clear, the usb controller is *not* causing the whole platform to
> On do_reset(), the platform resets fine. However, the usb controller is
> *not* put in reset. Because of that, the host does not detect a USB
> disconnection. Which is what I'm trying to solve here.
Yes, this is how I understand the problem too.
Assume someone would run e.g. ums code, which would bring up the
controller too, I suspect it would also cause the same reset issues.
Which is why I wonder whether we shouldn't add this kind of fix into the
reset handler for the platform itself.
> If we do the generic fix, there is not really a point into implementing
> a platform specific reset.
> Note that on linux, when we run "reboot" the driver's remove() function
> takes care of usb reset.
Does that also work with sysrq-B or reboot -nf (one of the fast reboots) ?
More information about the U-Boot