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

Reply via email to