RE: [PATCH] usb/fsl_udc: fix dequeuing a request in progress

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

 



>Subject: Re: [PATCH] usb/fsl_udc: fix dequeuing a request in progress
>
>On Fri, Nov 11, 2011 at 08:38:13PM +0800, Li Yang wrote:
>> The original implementation of dequeuing a request in progress is not
>> correct.  Change to use a correct process and also clean up the
>> related functions a little bit.
>>
>> Signed-off-by: Li Yang <leoli@xxxxxxxxxxxxx>
>> ---
>>  drivers/usb/gadget/fsl_udc_core.c |   62 +++++++++++++++++-------------
>------
>>  1 files changed, 29 insertions(+), 33 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/fsl_udc_core.c
>> b/drivers/usb/gadget/fsl_udc_core.c
>> index b2c44e1..beef9b7 100644
>> --- a/drivers/usb/gadget/fsl_udc_core.c
>> +++ b/drivers/usb/gadget/fsl_udc_core.c
>> @@ -696,12 +696,31 @@ static void fsl_free_request(struct usb_ep *_ep,
>struct usb_request *_req)
>>  		kfree(req);
>>  }
>>
>> -/*-------------------------------------------------------------------
>> ------*/
>> +/* Actually add a dTD chain to an empty dQH and let go */ static void
>> +fsl_prime_ep(struct fsl_ep *ep, struct ep_td_struct *td) {
>> +	struct ep_queue_head *qh = ep->qh;
>It seems to can't get the correct qh pointer, you may still need to use
>below code to get it
> 	int i = ep_index(ep) * 2 + ep_is_in(ep);
> 	struct ep_queue_head *dQH = &ep->udc->ep_qh[i];

Thanks for trying.    It will be much easier if we can dereference QH from the ep structure.  It is really strange that the ep->qh pointer is not working somehow.

We have initialized it in struct_ep_setup():
	ep->qh = &udc->ep_qh[index];

Can you do me a favor on investigating why it's failing?

Thanks,
Leo

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux