[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <410670D7E743164D87FA6160E7907A56013A59784A@am04wembxa.internal.synopsys.com>
Date: Wed, 30 May 2018 07:16:36 +0000
From: Minas Harutyunyan <Minas.Harutyunyan@...opsys.com>
To: Zeng Tao <prime.zeng@...ilicon.com>,
"Minas.Harutyunyan@...opsys.com" <Minas.Harutyunyan@...opsys.com>
CC: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] usb: dwc2: gadget: fix missing process for isoc
descriptor dma mode
Hi Zeng Tao,
On 5/30/2018 9:09 AM, Zeng Tao wrote:
> If it's the first request to queue, and we are using descriptor dma mode
> for isoc transfer, we only need to add the request to the queue, and it
> will be processed in the future nak interrupt handler.
>
> Signed-off-by: Zeng Tao <prime.zeng@...ilicon.com>
> ---
> drivers/usb/dwc2/gadget.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
> index f0d9ccf..48e3a48c 100644
> --- a/drivers/usb/dwc2/gadget.c
> +++ b/drivers/usb/dwc2/gadget.c
> @@ -1365,6 +1365,9 @@ static int dwc2_hsotg_ep_queue(struct usb_ep *ep, struct usb_request *req,
> return 0;
> }
>
> + if (using_desc_dma(hs))
> + return 0;
> +
> /* Update current frame number value. */
> hs->frame_number = dwc2_hsotg_read_frameno(hs);
> while (dwc2_gadget_target_frame_elapsed(hs_ep)) {
>
Actually it considered in "[PATCH] usb: dwc2: Change ISOC DDMA flow"
before checking is this request first or no:
+ if (using_desc_dma(hs) && hs_ep->isochronous) {
+ if (hs_ep->target_frame != TARGET_FRAME_INITIAL) {
+ dwc2_gadget_fill_isoc_desc(hs_ep, hs_req->req.dma,
+ hs_req->req.length);
+ }
return 0;
}
Thanks,
Minas
Powered by blists - more mailing lists