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