Am Mittwoch, 2. Juni 2010 11:42:32 schrieb Du, Alek: > >-----Original Message----- > Yes, of course, we have tested a lot of "normal" USB devices. > This behavior has been defined in USB 2.0 ECN: Link Power Management, Page 8: > If the device does not understand the protocol extension transaction, no handshake > is returned. Basically the LPM token is encapsulated in a standard token, while the device > does not understand the extension token, nothing happens. Very good. > >> >> + return retval; > >> >> +} > >> >> diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c > >> >> index 11a79c4..0c39f49 100644 > >> >> --- a/drivers/usb/host/ehci-q.c > >> >> +++ b/drivers/usb/host/ehci-q.c > >> >> @@ -643,6 +643,16 @@ qh_urb_transaction ( > >> >> sizeof (struct usb_ctrlrequest), > >> >> token | (2 /* "setup" */ << 8), 8); > >> >> > >> >> + if (((struct usb_ctrlrequest *)urb->setup_packet)->bRequest > >> >> + == USB_REQ_SET_ADDRESS) { > >> >> + /* for LPM capable HC, set up device address*/ > >> >> + int dev_address = ((struct usb_ctrlrequest *) > >> >> + (urb->setup_packet))->wValue; > >> >> + if (ehci->has_lpm) > >> >> + ehci_lpm_set_da(ehci, dev_address, > >> >> + urb->dev->portnum); > >> >> + } > >> > > >> >No. Please make an explicit hook for this in usbcore. > >> > >> Thanks, but I do not know if we can make it ehci specific? > > > >Does anything but a subset of EHCI support LPM? > >I am not sure that I understand the question. > > What I mean is, I do not want to touch usb core code, since it is only a EHCI feature. > If we could keep the patch only in EHCI part, it is good. If you put it into the reset_device method of EHCI, all will be well, won't it? Regards Oliver -- 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