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

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


On Mon, May 21, 2012 at 03:09:43PM +0530, 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.

Aha, ok now I get the full picture. So this really deserves help from
Synopsys ;-) Great catch.

-- 
balbi

Attachment: signature.asc
Description: Digital signature


B and H Foto and Electronics Corp.

[Linux Media]     [Video for Linux]     [Linux Input]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]     [More Archives]

Add to Google Powered by Linux