can not receive xfer interrupt after stop xfer is called intel XHCI Gemini Lake SOC

Hans Petter Selasky hps at selasky.org
Fri Dec 27 09:28:40 UTC 2019


On 2019-12-27 02:50, Shichun.Ma at 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


More information about the freebsd-usb mailing list