Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Mar 2015 10:54:20 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Kohji Okuno <okuno.kohji@jp.panasonic.com>, freebsd-usb@freebsd.org
Subject:   Re: Why do we try to enter U1 mode in SuperSpeed?
Message-ID:  <55190F3C.4070901@selasky.org>
In-Reply-To: <20150330.135402.19625324788487516.okuno.kohji@jp.panasonic.com>
References:  <20150330.135402.19625324788487516.okuno.kohji@jp.panasonic.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55190F3C.4070901>