FS#77109 - [linux] Buggy Audio Playback through Steinberg UR22C on Kernels v6.1+
Attached to Project:
Arch Linux
Opened by Noah Li (UM-Li) - Friday, 13 January 2023, 11:05 GMT
Last edited by Toolybird (Toolybird) - Friday, 15 September 2023, 23:27 GMT
Opened by Noah Li (UM-Li) - Friday, 13 January 2023, 11:05 GMT
Last edited by Toolybird (Toolybird) - Friday, 15 September 2023, 23:27 GMT
|
Details
[Description]
After upgrading the kernel to v6.1+, audio playback through Steinberg UR22C interface becomes accelerated with lots of crackling and micro-skipping. The bug: - Seems to affect all types of audio playback; tested with music player (Audacious), video players (VLC; Firefox + YouTube), DAW (JACK & Ardour 7) and DE sound effects (KDE Plasma). - Affects both PulseAudio (audio / video players; DE sounds) and ALSA (JACK on ALSA driver mode, bypassing PulseAudio). - Affects all kernel versions starting from v6.1 (tested on v6.1.arch1 ~ v6.1.4.arch1); currently the only solution I have found is downgrading to kernel v6.0.12 or lower. The system is otherwise up to date. - Only affects output through the UR22C interface; output through the laptop's own headphone jack is normal regardless of kernel version. - Cannot be solved by restarting the laptop or reconnecting the interface. [Steps to reproduce] 1. Upgrade the kernel to v6.1.arch1 or above. [System Info] dmesg gives these when the interface is connected: [ 943.984871] usb 2-1: new SuperSpeed USB device number 4 using xhci_hcd [ 944.002600] usb 2-1: New USB device found, idVendor=0499, idProduct=172f, bcdDevice= 1.01 [ 944.002611] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 944.002615] usb 2-1: Product: Steinberg UR22C [ 944.002619] usb 2-1: Manufacturer: Yamaha Corporation hwinfo entry of the interface: 59: USB 00.2: 0000 Unclassified device [Created at usb.122] Unique ID: 9hmN.1NJiwepTB11 Parent ID: pBe4.xYNhIwdOaa6 SysFS ID: /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.2 SysFS BusID: 2-1:1.2 Hardware Class: unknown Model: "Yamaha Steinberg UR22C" Hotplug: USB Vendor: usb 0x0499 "Yamaha Corp." Device: usb 0x172f "Steinberg UR22C" Revision: "1.01" Driver: "snd-usb-audio" Driver Modules: "snd_usb_audio" Module Alias: "usb:v0499p172Fd0101dcEFdsc02dp01ic01isc02ip20in02" Config Status: cfg=new, avail=yes, need=no, active=unknown Attached to: #73 (Hub) PulseAudio version is 16.1. ALSA info generated by alsa-info.sh is attached. |
This task depends upon
Closed by Toolybird (Toolybird)
Friday, 15 September 2023, 23:27 GMT
Reason for closing: Fixed
Additional comments about closing: See comments
Friday, 15 September 2023, 23:27 GMT
Reason for closing: Fixed
Additional comments about closing: See comments
[1] https://wiki.archlinux.org/title/Kernel#Debugging_regressions
I also attempted to bisect linux-git following instructions in the Wiki [1], setting v6.0-rc7 as good and v6.1 as bad. But running makepkg -efsi results in build failure at the first round of bisection. I am not familiar with development and not sure how to continue.
[1] https://wiki.archlinux.org/title/Bisecting_bugs_with_Git
FS#76922. Please check those until your result differs then I will build the next step for you.List of results:
[0] 6.0 - GOOD
[0] 6.1 - BAD
[1] 6.0.r7594.g33e591dee915 - BAD
[2] 6.0.r3239.ga47e60729d96 - GOOD
status: waiting for good commit(s), bad commit known
$ git bisect good v6.0
Bisecting: 7514 revisions left to test after this (roughly 13 steps)
[33e591dee915832c618cf68bb1058c8e7d296128] Merge tag 'phy-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
$ git bisect bad
Bisecting: 4354 revisions left to test after this (roughly 12 steps)
[a47e60729d9624e931f988709ab76e043e2ee8b9] Merge tag 'backlight-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
$ git bisect good
Bisecting: 2238 revisions left to test after this (roughly 11 steps)
[ff6862c23d2e83d12d1759bf4337d41248fb4dc8] Merge tag 'arm-drivers-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
https://drive.google.com/file/d/1sn8FB-nv3cTSSRnVexyOafeXHl5827I7/view?usp=share_link linux-6.0.r5355.gff6862c23d2e-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/18_3wuK__8dnQ8pkgScbLLcm9AHsoRrho/view?usp=share_link linux-headers-6.0.r5355.gff6862c23d2e-1-x86_64.pkg.tar.zst
Bisecting: 1022 revisions left to test after this (roughly 10 steps)
[95d8c67187bcfaa519bafcdef9091cd906505454] Merge tag 'drm-msm-next-2022-09-22' of https://gitlab.freedesktop.org/drm/msm into drm-next
https://drive.google.com/file/d/1b1sh0UJFzrOcr0MeawuZkykFGZr4YHY8/view?usp=share_link linux-6.0rc2.r1093.g95d8c67187bc-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1hP6_Uv0jyEhtIYUB_PGwdHCW1zT91RxH/view?usp=share_link linux-headers-6.0rc2.r1093.g95d8c67187bc-1-x86_64.pkg.tar.zst
Bisecting: 544 revisions left to test after this (roughly 9 steps)
[86a4d29e75540e20f991e72f17aa51d0e775a397] Merge tag 'asoc-v6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
https://drive.google.com/file/d/11uCqFAHURnctnOJbPAuU_p_1--c-aZz_/view?usp=share_link linux-6.0rc5.r500.g86a4d29e7554-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1lsESpCuBJx3ZhH8Uz8U_-wy5tHhFr8XC/view?usp=share_link linux-headers-6.0rc5.r500.g86a4d29e7554-1-x86_64.pkg.tar.zst
Bisecting: 238 revisions left to test after this (roughly 8 steps)
[5cf934e84659ca2f03db6254978d56f053745366] ASoC: sun50i-dmic: dt-bindings: add DT bindings for DMIC controller
https://drive.google.com/file/d/15XmbnIVq0PyswcsRwGK6JkFH82_Gwu1q/view?usp=share_link linux-6.0rc5.r239.g5cf934e84659-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1IJyEaoY3iEjJbdbvTqvrf3kdDURuwyc_/view?usp=share_link linux-headers-6.0rc5.r239.g5cf934e84659-1-x86_64.pkg.tar.zst
Bisecting: 119 revisions left to test after this (roughly 7 steps)
[f7c91bf65388547f61888b7a67169966fc698ce1] ASoC: SOF: mediatek: mt8195: Add pcm_pointer callback
https://drive.google.com/file/d/17awLLlrrxid9h_KKezJ9mZtHrWyn72fW/view?usp=share_link linux-6.0rc5.r358.gf7c91bf65388-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1GA6eWF0BqFSfNADKJtlEKUHW52KXXKTl/view?usp=share_link linux-headers-6.0rc5.r358.gf7c91bf65388-1-x86_64.pkg.tar.zst
Bisecting: 59 revisions left to test after this (roughly 6 steps)
[ef6f5494faf6a37c74990689a3bb3cee76d2544c] ALSA: hda/hdmi: Use only dynamic PCM device allocation
https://drive.google.com/file/d/1uMGpeMyYVlSuWAnMpkRl7uH8-Yx6UQ6K/view?usp=share_link linux-6.0rc5.r82.gef6f5494faf6-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1IHekRpsZ59KmeWkw1C1If2DKRrGbpRWu/view?usp=share_link linux-headers-6.0rc5.r82.gef6f5494faf6-1-x86_64.pkg.tar.zst
Bisecting: 29 revisions left to test after this (roughly 5 steps)
[7269734abbf5960d0be9050ba3991c0af1d9f574] ALSA: hda: cs35l41: Utilize acpi_get_subsystem_id()
https://drive.google.com/file/d/16uSuBD1XW4IjuLkSBXFi3eRBaawO78IR/view?usp=share_link linux-6.0rc2.r48.g7269734abbf5-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1ORg4hLW53jflJSWDJoqKCSKYk67cDQg2/view?usp=share_link linux-headers-6.0rc2.r48.g7269734abbf5-1-x86_64.pkg.tar.zst
Bisecting: 15 revisions left to test after this (roughly 4 steps)
[18afcf90d8807fef66d1fd428eeb2b407df90fa8] ALSA: hda: cleanup definitions for multi-link registers
https://drive.google.com/file/d/1adXxc-hXDXgLKGrn053USEO7puJAR8kp/view?usp=share_link linux-6.0rc1.r38.g18afcf90d880-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1DYupZOIJZ5nlsfLZPATmW2urw8UopVI2/view?usp=share_link linux-headers-6.0rc1.r38.g18afcf90d880-1-x86_64.pkg.tar.zst
Bisecting: 7 revisions left to test after this (roughly 3 steps)
[ac5e2fb425e1121ceef2b9d1b3ffccc195d55707] ALSA: usb-audio: Drop superfluous interface setup at parsing
https://drive.google.com/file/d/1L7hQ-YZqXhf2KTgbu7gadHSSn9olCdFQ/view?usp=share_link linux-6.0rc2.r26.gac5e2fb425e1-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/14I_rj9SgKoV2xXqivQHlVzcQwGaZxxvF/view?usp=share_link linux-headers-6.0rc2.r26.gac5e2fb425e1-1-x86_64.pkg.tar.zst
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[dd164fbfdc20ccf17be9186b1a5a4b2bc11b6a97] ALSA: memalloc: Drop special handling of GFP for CONTINUOUS allocation
https://drive.google.com/file/d/1wblbdmx-1ue6IdgNhe1zOlCrqlJMQpGV/view?usp=share_link linux-6.0rc2.r8.gdd164fbfdc20-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/19k6LJbrMpmvYpzCLwF2Km1YWjqYQB1bQ/view?usp=share_link linux-headers-6.0rc2.r8.gdd164fbfdc20-1-x86_64.pkg.tar.zst
Bisecting: 1 revision left to test after this (roughly 1 step)
[384c687fb4ad0774aaae58ed7f43cc738aa57a73] Merge branch 'topic/memalloc-cleanup' into for-next
https://drive.google.com/file/d/14Im24Ex7y-b9UYDEGKtJPh5-t9G4sgjV/view?usp=share_link linux-6.0rc2.r24.g384c687fb4ad-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1FeteT37JQ--U3IFqy6g78aXGo5ydZWkn/view?usp=share_link linux-headers-6.0rc2.r24.g384c687fb4ad-1-x86_64.pkg.tar.zst
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[999b95a72d90ed7a7073eae594fa35462d71854f] ALSA: hda/hdmi: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
https://drive.google.com/file/d/1t90f3Ep_1j4qLf5idTWmjwIk2vMllcz3/view?usp=share_link linux-6.0rc2.r25.g999b95a72d90-1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1n7m0WlG9LM7zUCVoUnV2wT_uaL7Z1qIn/view?usp=share_link linux-headers-6.0rc2.r25.g999b95a72d90-1-x86_64.pkg.tar.zst
ac5e2fb425e1121ceef2b9d1b3ffccc195d55707 is the first bad commit
commit ac5e2fb425e1121ceef2b9d1b3ffccc195d55707
Author: Takashi Iwai <tiwai@suse.de>
Date: Wed Aug 31 15:00:21 2022 +0200
ALSA: usb-audio: Drop superfluous interface setup at parsing
We reset each interface that is being parsed for each stream, but this
is superfluous and even can lead to spurious errors. Since the
interface is set up properly at opening the endpoint for each actual
stream operation, let's drop the superfluous one.
Link: https://lore.kernel.org/r/20220831130021.4762-1-tiwai%40suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/stream.c | 6 ------
1 file changed, 6 deletions(-)
$ git bisect log
git bisect start
# status: waiting for both good and bad commits
# bad: [830b3c68c1fb1e9176028d02ef86f3cf76aa2476] Linux 6.1
git bisect bad 830b3c68c1fb1e9176028d02ef86f3cf76aa2476
# status: waiting for good commit(s), bad commit known
# good: [4fe89d07dcc2804c8b562f6c7896a45643d34b2f] Linux 6.0
git bisect good 4fe89d07dcc2804c8b562f6c7896a45643d34b2f
# bad: [33e591dee915832c618cf68bb1058c8e7d296128] Merge tag 'phy-for-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
git bisect bad 33e591dee915832c618cf68bb1058c8e7d296128
# good: [a47e60729d9624e931f988709ab76e043e2ee8b9] Merge tag 'backlight-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight
git bisect good a47e60729d9624e931f988709ab76e043e2ee8b9
# bad: [ff6862c23d2e83d12d1759bf4337d41248fb4dc8] Merge tag 'arm-drivers-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
git bisect bad ff6862c23d2e83d12d1759bf4337d41248fb4dc8
# good: [95d8c67187bcfaa519bafcdef9091cd906505454] Merge tag 'drm-msm-next-2022-09-22' of https://gitlab.freedesktop.org/drm/msm into drm-next
git bisect good 95d8c67187bcfaa519bafcdef9091cd906505454
# bad: [86a4d29e75540e20f991e72f17aa51d0e775a397] Merge tag 'asoc-v6.1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
git bisect bad 86a4d29e75540e20f991e72f17aa51d0e775a397
# good: [5cf934e84659ca2f03db6254978d56f053745366] ASoC: sun50i-dmic: dt-bindings: add DT bindings for DMIC controller
git bisect good 5cf934e84659ca2f03db6254978d56f053745366
# good: [f7c91bf65388547f61888b7a67169966fc698ce1] ASoC: SOF: mediatek: mt8195: Add pcm_pointer callback
git bisect good f7c91bf65388547f61888b7a67169966fc698ce1
# bad: [ef6f5494faf6a37c74990689a3bb3cee76d2544c] ALSA: hda/hdmi: Use only dynamic PCM device allocation
git bisect bad ef6f5494faf6a37c74990689a3bb3cee76d2544c
# bad: [7269734abbf5960d0be9050ba3991c0af1d9f574] ALSA: hda: cs35l41: Utilize acpi_get_subsystem_id()
git bisect bad 7269734abbf5960d0be9050ba3991c0af1d9f574
# good: [18afcf90d8807fef66d1fd428eeb2b407df90fa8] ALSA: hda: cleanup definitions for multi-link registers
git bisect good 18afcf90d8807fef66d1fd428eeb2b407df90fa8
# bad: [ac5e2fb425e1121ceef2b9d1b3ffccc195d55707] ALSA: usb-audio: Drop superfluous interface setup at parsing
git bisect bad ac5e2fb425e1121ceef2b9d1b3ffccc195d55707
# good: [dd164fbfdc20ccf17be9186b1a5a4b2bc11b6a97] ALSA: memalloc: Drop special handling of GFP for CONTINUOUS allocation
git bisect good dd164fbfdc20ccf17be9186b1a5a4b2bc11b6a97
# good: [384c687fb4ad0774aaae58ed7f43cc738aa57a73] Merge branch 'topic/memalloc-cleanup' into for-next
git bisect good 384c687fb4ad0774aaae58ed7f43cc738aa57a73
# good: [999b95a72d90ed7a7073eae594fa35462d71854f] ALSA: hda/hdmi: Replace zero-length array with DECLARE_FLEX_ARRAY() helper
git bisect good 999b95a72d90ed7a7073eae594fa35462d71854f
# first bad commit: [ac5e2fb425e1121ceef2b9d1b3ffccc195d55707] ALSA: usb-audio: Drop superfluous interface setup at parsing
6.1.6 with ac5e2fb425e1121ceef2b9d1b3ffccc195d55707 reverted
https://drive.google.com/file/d/1OJmx3cyAGf1sIjAURykSIgXgW0zHq57I/view?usp=share_link linux-6.1.6.arch1-1.1-x86_64.pkg.tar.zst
https://drive.google.com/file/d/1nOycfAJrDoFWWTlKMgmdh1al1mm8xJZn/view?usp=share_link linux-headers-6.1.6.arch1-1.1-x86_64.pkg.tar.zst
If the above kernel works report the issue on https://bugzilla.kernel.org/ if there is not already a report for it or reply to the mailing list link in ac5e2fb425e1121ceef2b9d1b3ffccc195d55707's commit message.
Upstream ticket [1]
[1] https://bugzilla.kernel.org/show_bug.cgi?id=216934
https://git.kernel.org/pub/scm/linux/kernel/git/stable/stable-queue.git/tree/queue-6.1/revert-alsa-usb-audio-drop-superfluous-interface-setup-at-parsing.patch