Date: Fri, 27 Dec 2019 09:27:30 +0100 From: Hans Petter Selasky <hps@selasky.org> To: Shichun.Ma@dell.com, freebsd-usb@freebsd.org Cc: Shunchao.Hu@dell.com Subject: Re: can not receive xfer interrupt after stop xfer is called intel XHCI Gemini Lake SOC Message-ID: <db23ff3a-df66-e060-4409-5eccb214d3cf@selasky.org> In-Reply-To: <1577411424906.21267@Dell.com> References: <1577408331523.24347@Dell.com> <acc5ccc7-d76c-d9ff-f9d5-f63ac40227d6@selasky.org> <1577411424906.21267@Dell.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2019-12-27 02:50, Shichun.Ma@dell.com wrote:
> Hi HPS,
> XHCI spec just tells:
> The configure Endpoint command TRB evalutes the bandwidth and resouce reqirement of the endpoints selected by the command.
> So I don't think this command can be call to one endpoint several times.
Hi,
When you have alternate interface settings for the same endpoint, how
can you then update the max packet size, if the endpoint can't be
re-configured?
Are we missing some XHCI command before configure, like stop endpoint?
> How, I tried to call configure endpoint with DC (disable configure), it can't help.
>
>>From XHCI spec's view, "reset Endpoint command" is enough to stop xfer.
>
In this piece of code, does it help to stop the endpoint before you
configure?
> /* configure endpoint */
>
> err = xhci_configure_endpoint_by_xfer(xfer);
>
> if (err != 0) {
> XHCI_CMD_UNLOCK(sc);
> return (err);
> }
>
> /*
> * Get the endpoint into the stopped state according to the
> * endpoint context state diagram in the XHCI specification:
> */
>
> err = xhci_cmd_stop_ep(sc, 0, epno, index);
>
> if (err != 0)
> DPRINTF("Could not stop endpoint %u\n", epno);
Thanks for notifying us about this issue.
--HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?db23ff3a-df66-e060-4409-5eccb214d3cf>
