On Fri, 17 Dec 2010, Alessio Sangalli wrote: > Hi, where can I find some information on how to force a specific device > to the OHCI companion? Can I only force the entire bus to the companion > or can I choose a specific port on a hub? I am sorry for the relatively > stupid questions here but I have not found the correct piece of doc that > explains this. Oddly enough, this doesn't appear to be anywhere in the kernel documentation. Guess I never remembered to add it... Anyway, you can force individual root-hub ports to be dedicated to the companion controller by using sysfs. For example, let's say you wanted port 4 on bus 1 always to run at full or low speed. You would do it by: # echo 4 >/sys/bus/usb/devices/usb1/../companion To resume normal operation, write "-4" instead of "4". If you read the "companion" file, you'll see a list of all the ports that have been forced over to the companion controller. There is no equivalent operation for ports on a USB hub. The best you can do is force the entire hub to run at full speed. You can also force the entire high-speed bus over to the companion, by unbinding the bus from the ehci-hcd driver. To do this, you have to find out the PCI pathname of the particular controller and write it to the driver's "unbind" file. For example: # cd -P /sys/bus/usb/devices/usb1/../ # pwd /sys/devices/pci0000:00/0000:00:1d.7 # cd driver # echo -n '0000:00:1d.7' >unbind (The "-n" flag is necessary.) To return to normal operation, write the pathname to the "bind" file. Or you can get rid of all the high-speed buses simply by doing # rmmod ehci-hcd Alan Stern -- 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