Why do we try to enter U1 mode in SuperSpeed?
Hans Petter Selasky
hps at selasky.org
Mon Mar 30 08:53:36 UTC 2015
On 03/30/15 06:54, Kohji Okuno wrote:
> Hi HPS
>
> 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.
>
> Regards,
> Kohji Okuno
>
> (***)
> usb_hub.c:
> 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 }
Hi,
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.
--HPS
More information about the freebsd-usb
mailing list