Hello. How to correctly turn off the port power of usb hub (assuming hub supports individual port power switching). Correctly means that all drivers using the device on that port are notified before the power is removed. Removed device could also be a usb hub.
My experiments with function usb_control_msg( hdev, usb_sndctrlpipe(hdev, 0), USB_REQ_CLEAR_FEATURE, USB_RT_PORT, USB_PORT_FEAT_POWER, port1, NULL, 0, 1000); will not give desired results. When I try to turn off port power with usb_control_msg, the port resides on usb hub (not root hub), then the power is indeed switched off but drivers are not notified. The devices I use are usb 1.1 and 2.0 mass storage devices, linux kernel 2.6.18. After the feat power feature was cleared the power went away for a couple of seconds but then (i think this was the scsi subsystem who wanted to perform IO with the device) usb subsystem found logical disconnect on port and the device was re-powered... Things get more complicated if port power must be switched off on root hub that has kind of controller where each port is shared by ohci - ehci driver. Most 2.0 pci to usb root hubs fall to that category. If the port is used by both drivers (actually the sharing starts from hardware) then the power must be turned off (port power feature cleared) on both controllers. I don't know the generic solution how to set up port mapping, except looking to the datasheet. My question is how can I notify all drivers related to given usb hub port when i have (struct usb_device *dev) where dev is the device on hub port where the power must be switched off? JR ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel