On 03/30/15 06:54, Kohji Okuno wrote:

I have a question.
Why do we try to enter U1 mode in SuperSpeed?
This is the following codes(***)

In our proprietary environmen(This has a xHCI controller), when a
device accept U1, the device may be strange status. Acutually, when I
tried to connect "Western Digital My Passport Essential 320GB
(P/N:WDBACY3200ABK-00)", this HDD was not recognized correctly.
But, in PC environment, this HDD was recognized correctly.

  Kohji Okuno

793             if (speed == USB_SPEED_SUPER) {
794                     err = usbd_req_set_hub_u1_timeout(udev, NULL,
795                         portno, 128 - (2 * udev->depth));
796                     if (err) {
797                             DPRINTFN(0, "port %d U1 timeout "
798                                 "failed, error=%s\n",
799                                 portno, usbd_errstr(err));
800                     }
801                     err = usbd_req_set_hub_u2_timeout(udev, NULL,
802                         portno, 128 - (2 * udev->depth));
803                     if (err) {
804                             DPRINTFN(0, "port %d U2 timeout "
805                                 "failed, error=%s\n",
806                                 portno, usbd_errstr(err));
807                     }
808             }


We are not trying to enter U1 mode, we only setup the U1 and U2 timeouts. Is there a flag in the USB descriptors that say this is not supported and that we need to set some other value? I thought all superspeed devices had to support these features and that switching in and out of the sleep modes was done by the XHCI hardware.


freebsd-usb@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to