On 5/22/2012 4:50 PM, Felipe Balbi wrote:
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.
Ok , I will do that and will send V3, but may be tomorrow.
--
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