View Single Post
Posts: 243 | Thanked: 172 times | Joined on Sep 2007 @ silicon valley
#985
I am typing this in from a USB keyboard hooked up to an external hub that I got working with just force host. It was not via the HNP trick.

I have tried different hubs connected directly. I can also unplug the keyboard, plug one hub into the other, plug in the keyboard to the cascaded hub, and use it from there. Unfortunately detecting disconnects / connects after initial enumeration is not 100%reliable.

Mass storage doesnt seem to be working for reasons I dont know yet. Mass storage devices are detected as shown with lsusb.

I have had a keyboard and a keyboard/touchpad plugged in and operating at the same time - this is what I have available right bow other than the mass storage.

I tried connecting my keyboard directly without the hub and it showed up in lsusb but did not work, no characters typed showed up on the screen.

I am using a power injection cable. It also works with the bq power instead of power injection, but a powered hub still seems to be required.

The additional changes to what I did before that seem relevant are disable usbcore autosuspend and then making the musb SUSPEND interrupt a noop when forcing host mode. Also, disabling the usb whitelist appears to causes issues with the gadget driver, grep your syslog for "cut". So for now it seems better to leave whitelist configured but really allow everything.

The switch to host is not 100% reliable, probably due to ulpi timeouts. These happen for reasons I don't know.

[edit] As it stands host mode only works with connecting the id pin first. The interrupts that happen when applying power first cause a session to be opened as a peripheral, which interferes. Working on it.
Attached Files
File Type: txt syslog.excerpt.txt (4.8 KB, 260 views)
File Type: txt lsusb.verbose.txt (14.4 KB, 224 views)

Last edited by sarahn; 2010-05-31 at 11:48.