All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.