linux-usb.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Felipe Balbi <balbi@kernel.org>
To: "Chow, Watson" <Watson.Chow@Avnet.com>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>
Subject: RE: [BUG REPORT] usb: dwc3: Bug while setting the USB transfer bandwidth on UVC gadget driver
Date: Mon, 17 May 2021 08:32:07 +0300	[thread overview]
Message-ID: <87zgwu53jc.fsf@kernel.org> (raw)
In-Reply-To: <9e8d9a55a0e64ab092ceb464db5f0119@Avnet.com>

[-- Attachment #1: Type: text/plain, Size: 2649 bytes --]


Hi,

"Chow, Watson" <Watson.Chow@Avnet.com> writes:
> Hi,
>
>>Hi,
>>
>>(please don't top-post :-)
> I have tried my best to meet the format requirement

Thanks

>>"Chow, Watson" <Watson.Chow@Avnet.com> writes:
>>> Balbi,
>>>
>>> Thanks for your quick reply.
>>>
>>> Some questions
>>>
>>> 1. You mentioned that the max bandwidth in isoc mode (USB3.0) should be 
>>> around 4Gbps.  
>>>
>>> I have the below calcuation on bandwidth:
>>> In USB3.0, 1 micro frame would take 125us and can transfer max 45000 bytes
>>> So, in 1 sec, we will have 8000 micro frames
>>>
>>> Max bandwidth = 8000 x 4500 x 8 = 2.88Gbps
>>>
>>> Is my understanding correct?
>>
>>probably, It's been a while since I've dug through the spec, to be frank
>>
>>> 2. To achieve the max throughput, I need to configure the uvc gadget driver 
>>> with below parameters. Am I right?
>>>
>>> # modprobe g_webcam streaming_maxpacket=3072 streaming_maxburst=15 
>>> streaming_interval=1
>>
>>right, but there's an assumption here that the gadget will be able to
>>feed data in a timely manner.
>
> How does the DWC3 driver or the gadget driver handle the case with intermittent
> drop of the input video streaming?
>
> Any recover mechanism?

yeah, the missed ISOC is reported to the gadget driver and that has to
queue new requests.

>>> 3. You suggest me to try on kernel v5.12 or the latest v5.13-rc. It looks not
>>> easy in my side to upgrade the kernel version. It would affect those other 
>>> device drivers I'm currently using. So, do you think there's any short cut 
>>> to fix this problem under my current kernel version - v5.4?
>>
>>In that case, you need to ask for support from whoever forces you to
>>stay with such an old kernel. I believe that would be Xilinx.
>
> I have a thought to back port those changes around the dwc3 and gadget driver
> from the latest kernel version to my kernel (v5.4). Do you think this is 
> feasible?

should be, but it's likely quite a bit of work:

$ git rev-list --count v5.4..linus/master -- drivers/usb/dwc3/
257

>>> 4. I read through the procedures to capture debug info by debugfs. However,
>>> in my test with "streaming_maxburst" set to 10 or above, my system would 
>>> crash and I can't pick the log from that point. Any suggestion?
>>
>>have a look at ftrace_dump_on_oops.
>
> I will explore how to enable this
>
>>
>
> Btw, do you know which SoC platform can run the UVC gadget in max throughput.
> Raspberry Pi/TI Beaglebone/i.MX ???

Raspberry Pi uses dwc2
Beaglebone uses musb
i.MX, I think some of them use dwc3 at least.

-- 
balbi

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 511 bytes --]

  reply	other threads:[~2021-05-17  5:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-14  3:20 [BUG REPORT] usb: dwc3: Bug while setting the USB transfer bandwidth on UVC gadget driver Chow, Watson
2021-05-14  7:16 ` Felipe Balbi
2021-05-14  8:59   ` Chow, Watson
2021-05-14 10:31     ` Felipe Balbi
2021-05-17  3:58       ` Chow, Watson
2021-05-17  5:32         ` Felipe Balbi [this message]
2021-06-04  2:53           ` Chow, Watson
2021-06-04  5:15             ` Felipe Balbi
2021-06-07  6:11             ` Peter Chen
2021-06-07 11:26               ` Chow, Watson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zgwu53jc.fsf@kernel.org \
    --to=balbi@kernel.org \
    --cc=Watson.Chow@Avnet.com \
    --cc=linux-usb@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).