On 05/04/2016 01:39 PM, Bin Liu wrote:
On Wed, May 04, 2016 at 01:20:36PM -0500, David Lechner wrote:
This is something I actually plan on using because the device I am
using (LEGO MINDSTORMS EV3) is not wired for OTG, so the callback is
needed to override the ID and VBUS signals when switching between
host and peripheral mode.
Have you already tested this? I never tried changing mode via sysfs, but
by quickly reviewing the code, I am wondering how it works. the core
only calls ops->set_mode() but nothing else. To really switch the mode,
the driver has to talk to the root hub, and manipulate the SESSION
bit...
I have tested this now and it works. It works because by setting the
mode, we are overriding the VBUS and ID signals, which in turn triggers
interrupts. I have tested switching to both peripheral mode and host
mode via sysfs. Host mode has some issues if you are using a
self-powered device, but that is a bug in the da8xx glue layer and
shouldn't hold up this patch series. Aside from that, it works exactly
as expected.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html