Re: [PATCH 2/8] usb/dwc3: Fix missed isoc

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

 



On 1/10/2013 4:20 PM, Felipe Balbi wrote:
On Thu, Jan 10, 2013 at 03:23:16PM +0530, Pratyush Anand wrote:
There are two reasons to generate missed isoc.

1. when the host does not poll for all the data.
2. because of application-side delays that prevent all the data from
being transferred in programmed microframe.

Current code was able to handle first case only.  Now we take following
approach to handle missed isoc.

If missed isoc occurred and there is no request queued then issue END
TRANSFER, so that core generates next xfernotready and we will issue a
fresh START TRANSFER.
If there are still queued request then wait, do not issue either END or
UPDATE TRANSFER, just attach next request in request_list during giveback.
If any future queued request is successfully transferred then we will issue
UPDATE TRANSFER for all request in the request_list.

Signed-off-by: Pratyush Anand <pratyush.anand@xxxxxx>

this is the *THIRD* patch fixing for "missed ISOC". Something is going

I think its second. ;)

It was sent in aug -12 but not applied. Therefore I have resend it again after rebasing with latest tag.

http://comments.gmane.org/gmane.linux.usb.general/69889

on, make sure to test this properly and fix "missed ISOC" once and for
all.

I will wait for testcases which show how to reproduce the problem and
after applying this patch fixes it.

Also, make sure to let me know how you tested it, which gadget drivers
have you used ? I would like to have g_zero, g_audio and g_webcam tested
to make sure different use cases are exercised.

We have a custom gadget which supports f_sourcesink, f_uac2 and a custom video function (based on g_webcam) in a single composite device.

Both audio and video gadget uses different isoc endpoint and at same time we run bulk in using testusb.

Patches have been tested with this device.

But, I think it can be reproduced easily by only g_zero too. Keep bInterval = 1 and then introduce delay of 150 us deliberately in source_sink_complete (to generate second condition as stated in commit log). Code should not work without this patch.

Regards
Pratyush



cheers



--
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