dwc2 gadget mode different behaviour with different hosts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I am trying to implement Android Open Accessory Protocol which is a
base for Android Auto Protocol. I am using Odroid N2 working in gadget
mode and trying to send data to car's headunit.

The problem I am facing now is that for some headunits it works, for
some it doesn't. It seems there is some difference in what happens
immediately after the host tries to switch device to accessory mode by
sending control commands 51, 52 and 53. The initial part in all cases
(all headunits I have access to) works just fine, but after it
completes my Odroid gadget should be reinitialized on the USB bus. On
hosts on which it works (my PC and VW headunit) the device gets new
address like this:

[   33.491312] Mass Storage Function, version: 2009/09/11
[   33.491322] LUN: removable file: (no medium)
[   33.504716] file system registered
[   33.506279] read descriptors
[   33.506290] read strings
[   33.510164] dwc2 ff400000.usb: bound driver configfs-gadget
[   33.678710] dwc2 ff400000.usb: new device is high-speed
[   33.750089] dwc2 ff400000.usb: new device is high-speed
[   33.806366] dwc2 ff400000.usb: new address 4
[   37.899601] ffs_data_put(): freeing
[   37.899862] unloading
[   38.942619] file system registered
[   38.943003] read descriptors
[   38.943009] read strings
[   38.946561] dwc2 ff400000.usb: bound driver configfs-gadget
[   39.310762] dwc2 ff400000.usb: new device is high-speed
[   39.381890] dwc2 ff400000.usb: new device is high-speed
[   39.438056] dwc2 ff400000.usb: new address 5

On Fiat's headunit I get the same address for both phases:
[   33.773387] Mass Storage Function, version: 2009/09/11
[   33.773397] LUN: removable file: (no medium)
[   33.784054] file system registered
[   33.792335] read descriptors
[   33.792389] read strings
[   33.796349] dwc2 ff400000.usb: bound driver configfs-gadget
[   34.023544] dwc2 ff400000.usb: new device is high-speed
[   34.131592] dwc2 ff400000.usb: new device is high-speed
[   34.194740] dwc2 ff400000.usb: new address 3
[   34.353478] ffs_data_put(): freeing
[   34.353825] unloading
[   35.392723] file system registered
[   35.393450] read descriptors
[   35.393459] read strings
[   35.403955] dwc2 ff400000.usb: bound driver configfs-gadget
[   37.119299] dwc2 ff400000.usb: new device is high-speed
[   37.227341] dwc2 ff400000.usb: new device is high-speed
[   37.290497] dwc2 ff400000.usb: new address 3

Any idea why this might be the case? Can I somehow enforce that the
device reintroduces itself on the bus and gets new address? Can I
somehow debug what happens when my device is connected as gadget (eg.
see control messages for device/configuration/string descriptors)?

Best regards,
Tomasz Grobelny



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux