Re: [PATCH 1/3] usb: chipidea: udc: handle USB Error Interrupt if IOC not set

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

 



On 24-09-12 11:35:49, Xu Yang wrote:
> As per USBSTS register description about UEI:
> 
>   When completion of a USB transaction results in an error condition, this
>   bit is set by the Host/Device Controller. This bit is set along with the
>   USBINT bit, if the TD on which the error interrupt occurred also had its
>   interrupt on complete (IOC) bit set.
> 
> Currently, device controller will do nothing when endpoints met transfer
> error if IOC didn't set on that error dTD since UI didn't assert too. This
> will also handle UEI event as same as USBSTS.UI for such cases.
> 
> Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx>

Acked-by: Peter Chen <peter.chen@xxxxxxxxxx>

> ---
>  drivers/usb/chipidea/udc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/chipidea/udc.c b/drivers/usb/chipidea/udc.c
> index 69ef3cd8d4f8..b9ccf62e0a50 100644
> --- a/drivers/usb/chipidea/udc.c
> +++ b/drivers/usb/chipidea/udc.c
> @@ -2063,7 +2063,7 @@ static irqreturn_t udc_irq(struct ci_hdrc *ci)
>  			}
>  		}
>  
> -		if (USBi_UI  & intr)
> +		if ((USBi_UI | USBi_UEI) & intr)
>  			isr_tr_complete_handler(ci);
>  
>  		if ((USBi_SLI & intr) && !(ci->suspended)) {
> -- 
> 2.34.1
> 




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

  Powered by Linux