[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <678F3D1BB717D949B966B68EAEB446ED0C91A6BC@DGGEMM506-MBS.china.huawei.com>
Date: Thu, 31 May 2018 01:17:40 +0000
From: "Zengtao (B)" <prime.zeng@...ilicon.com>
To: Minas Harutyunyan <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 Minus:
>-----Original Message-----
>From: Minas Harutyunyan [mailto:Minas.Harutyunyan@...opsys.com]
>Sent: Wednesday, May 30, 2018 3:17 PM
>To: Zengtao (B) <prime.zeng@...ilicon.com>;
>Minas.Harutyunyan@...opsys.com
>Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>;
>linux-usb@...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:
Yes, it,s. Thank you for pointing it out.
>
>+ 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
Regards
Zengtao
Powered by blists - more mailing lists