From: bugzilla-daemon@kernel.org
To: linux-usb@vger.kernel.org
Subject: [Bug 218544] not enough bandwidth, synaptics hi-res audio duplex audio
Date: Fri, 01 Mar 2024 19:09:35 +0000 [thread overview]
Message-ID: <bug-218544-208809-Y1mC6VYYvZ@https.bugzilla.kernel.org/> (raw)
In-Reply-To: <bug-218544-208809@https.bugzilla.kernel.org/>
https://bugzilla.kernel.org/show_bug.cgi?id=218544
Alan Stern (stern@rowland.harvard.edu) changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|stern@rowland.harvard.edu |
--- Comment #7 from Alan Stern (stern@rowland.harvard.edu) ---
There's also the usbhid interface on the audio device, probably used for a
volume control or something like that. Maybe unbinding it too will help. You
can try it, anyway, just to see what happens:
echo 1-1.1:1.3 >/sys/bus/usb/drivers/usbhid/unbind
(or with the device plugged into the rear port, use 2-1.1:1.3).
Without going into any deeper testing, I can summarize the problem for you.
Basically, the ehci-hcd driver in Linux has trouble utilizing the entire
available bandwidth when low- or full-speed (1.5 or 12 Mb/s) devices are
connected via a USB-2 hub. That's your situation; the hub is the 1-1 (or 2-1)
device, number 002 on both buses.
At one time Intel's chipsets would attach a single onboard hub directly to the
EHCI controller and then connect all the downstream USB ports through that hub.
This is what your laptop has. Even earlier Intel chipsets worked differently;
they connected each downstream USB port through a switch which would send
high-speed signals to the EHCI controller and low/full-speed signals to a
companion UHCI controller. Motherboards using that scheme didn't suffer from
this bandwidth problem unless the user connected a full/low-speed device via an
external USB-2 hub.
The reason for the problem is that the design of USB 2.0 and the EHCI
controller hardware make it quite complicated to handle the packet scheduling
when translating between two different speeds on the same bus. The driver uses
an incomplete and imperfect algorithm which can handle the simplest cases okay
but is not adequate for situations requiring a higher percentage of the total
bandwidth, especially when different transfer types (bulk, interrupt, and
isochronous) are mixed.
Improving the driver to make it more capable would require a tremendous amount
of work, and for very little return since nowadays computers use xHCI USB
controllers rather than EHCI. Only legacy systems dating from the time of your
T420 laptop or earlier would derive any benefit, and then only in situations
involving multiple devices with high bandwidth requirements.
I hope this explanation makes sense to you.
--
You may reply to this email to add a comment.
You are receiving this mail because:
You are watching the assignee of the bug.
next prev parent reply other threads:[~2024-03-01 19:09 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-218544-208809@https.bugzilla.kernel.org/>
2024-03-01 15:19 ` [Bug 218544] not enough bandwidth, synaptics hi-res audio duplex audio bugzilla-daemon
2024-03-01 15:58 ` bugzilla-daemon
2024-03-01 16:20 ` bugzilla-daemon
2024-03-01 16:21 ` bugzilla-daemon
2024-03-01 16:48 ` bugzilla-daemon
2024-03-01 17:14 ` bugzilla-daemon
2024-03-01 19:09 ` bugzilla-daemon [this message]
2024-03-02 13:02 ` bugzilla-daemon
2024-03-02 15:34 ` bugzilla-daemon
2024-03-05 17:14 ` bugzilla-daemon
2024-03-06 20:37 ` bugzilla-daemon
2024-03-08 14:04 ` bugzilla-daemon
2024-03-08 15:22 ` bugzilla-daemon
2024-03-08 16:47 ` bugzilla-daemon
2024-03-08 17:28 ` bugzilla-daemon
2024-03-08 23:35 ` bugzilla-daemon
2024-03-15 12:50 ` bugzilla-daemon
2024-03-15 12:50 ` bugzilla-daemon
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=bug-218544-208809-Y1mC6VYYvZ@https.bugzilla.kernel.org/ \
--to=bugzilla-daemon@kernel.org \
--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).