Re: [PATCH v2 1/2] usb: ehci: add workaround for chipidea PORTSC.PEC bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 09, 2023 at 10:44:31AM +0800, Xu Yang wrote:
> Some NXP processor using chipidea IP has a bug when frame babble is
> detected.
> 
> As per 4.15.1.1.1 Serial Bus Babble:
>   A babble condition also exists if IN transaction is in progress at
> High-speed SOF2 point. This is called frame babble. The host controller
> must disable the port to which the frame babble is detected.
> 
> The USB controller has disabled the port (PE cleared) and has asserted
> USBERRINT when frame babble is detected, but PEC is not asserted.
> Therefore, the SW isn't aware that port has been disabled. Then the
> SW keeps sending packets to this port, but all of the transfers will
> fail.
> 
> This workaround will firstly assert PCD by SW when USBERRINT is detected
> and then judge whether port change has really occurred or not by polling
> roothub status. Because the PEC doesn't get asserted in our case, this
> patch will also assert it by SW when specific conditions are satisfied.
> 
> Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx>
> 
> ---
> Changes in v2:
>  - fix typo in commit message
>  - Adjust the judgement logic in echi_irq() as suggested from Alan
> ---

Reviewed-by: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux