Re: [PATCH] usb: dwc2: Fix EP TxFIFO number setting

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

 



Hi,

On Thu, Jan 31, 2019 at 9:28 AM Minas Harutyunyan
<minas.harutyunyan@xxxxxxxxxxxx> wrote:
> From: Minas Harutyunyan <minas.harutyunyan@xxxxxxxxxxxx>
>
> In case when some EP IN is frequently reused, i.e. enabled/disabled by
> function driver. It is required to clear TxFIFO number field in DIEPCTL
> register before setting new number. Otherwise there is probability to
> have same TxFIFO number for different EP's because of OR operator.
>
> Signed-off-by: Minas Harutyunyan <hminas@xxxxxxxxxxxx>

I have verified that this patch fixed the issue we have regarding usb
data being sent to the incorrect usb endpoint.

Tested-by: Maynard Cabiente <maynard.cabiente@xxxxxxxxxxx>

Regards,
Maynard

> ---
>  drivers/usb/dwc2/gadget.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index 68ad75a7460d..1e5ee3c7be39 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -4005,6 +4005,7 @@ static int dwc2_hsotg_ep_enable(struct usb_ep *ep,
>   ret = -ENOMEM;
>   goto error1;
>   }
> + epctrl &= ~(DXEPCTL_TXFNUM_LIMIT << DXEPCTL_TXFNUM_SHIFT);
>   hsotg->fifo_map |= 1 << fifo_index;
>   epctrl |= DXEPCTL_TXFNUM(fifo_index);
>   hs_ep->fifo_index = fifo_index;
> --
> 2.11.0



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

  Powered by Linux