Re: [PATCH] USB: DWC3: Fix missed isoc IN transaction

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

 



On Tue, May 22, 2012 at 04:48:01PM +0530, Pratyush Anand wrote:
> On 5/21/2012 3:09 PM, Pratyush Anand wrote:
> >On 5/21/2012 2:46 PM, Felipe Balbi wrote:
> >>Hi,
> >>
> >>On Mon, May 21, 2012 at 02:41:13PM +0530, Pratyush Anand wrote:
> >>>>>If I call
> >>>>>dwc3_gadget_start_isoc_uf(dwc, dep, cur_uf)
> >>>>>
> >>>>>with cur_uf obtained from __dwc3_gadget_get_frame(dwc) , it does
> >>>>>not work.
> >>>>
> >>>>I guess you have already this bug :-)
> >>>>
> >>>
> >>>even if we correct the mask, there would be issue.
> >>>So frame number from DSTS is of 14 bits.
> >>>Correct value of DSTS was 0x3C8FC.
> >>>After correction of mask it will give uf as 0x391F which is not
> >>>0x791F coming from event->parameter.
> >>
> >>the missing bit on the mask fixes it, if you look at those numbers,
> >>0x391f only missed bit 14, which was missing on your mask ;-)
> >>
> >
> >No.. to avoid confusion:
> >
> >At one instance:
> >event->parameters is *0x791f*.
> >DSTS is 0x3C8FC.
> >
> >Our mask is (0x3fff << 3) = 0x1fff8
> >(0x3C8FC & 0x1fff8) = 0x1C8FC
> >(0x1C8FC >> 3) = *0x391f*
> >
> >Also, since one has 16 bit space while other has 14 bit, so they can not
> >be same always.
> 
> 
> Here is the reply from synopsys:
> 
> "
> You need to use the value coming from the XferNotReady event  based
> number for setting up the TRBs. This value
> doesn't reflect the exact number you get from the DSTS because there
> are two extra bits used internally by the core. The
> number in the DSTS reflects the USB bus uframe number which is not
> supposed to be used for setting the TRBs"
> 
> So, now what is your suggestion? Probably we need to keep event saved
> in dep as in PATCH V1.

no, don't save the whole event... only the frame number you need.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


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

  Powered by Linux