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
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

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
Comment by Toolybird (Toolybird) - Friday, 13 January 2023, 22:41 GMT
Definitely seems like a kernel regression. You should report this upstream. But first, follow the usual advice for debugging kernel regressions [1]. Please let us know what you find out.

[1] https://wiki.archlinux.org/title/Kernel#Debugging_regressions
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 13:24 GMT
Thanks for the hint. I tried v6.2.0-rc3-1 of the mainline kernel, which is also affected by this bug.

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
Comment by loqs (loqs) - Saturday, 14 January 2023, 14:36 GMT
There are some prebuilt bisection kernels in  FS#76922 . Please check those until your result differs then I will build the next step for you.
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 19:17 GMT
Thanks for the builds. Different result at round 2, 6.0.r3239.ga47e60729d96 is good.

List of results:

[0] 6.0 - GOOD
[0] 6.1 - BAD
[1] 6.0.r7594.g33e591dee915 - BAD
[2] 6.0.r3239.ga47e60729d96 - GOOD
Comment by loqs (loqs) - Saturday, 14 January 2023, 20:35 GMT
$ git bisect bad v6.1
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
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 20:43 GMT
6.0.r5355.gff6862c23d2e is bad.
Comment by loqs (loqs) - Saturday, 14 January 2023, 21:04 GMT
git bisect bad
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
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 21:13 GMT
6.0rc2.r1093.g95d8c67187bc is good.
Comment by loqs (loqs) - Saturday, 14 January 2023, 21:36 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 21:59 GMT
6.0rc5.r500.g86a4d29e7554 is bad.
Comment by loqs (loqs) - Saturday, 14 January 2023, 22:16 GMT
git bisect bad
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
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 22:26 GMT
6.0rc5.r239.g5cf934e84659 is good.
Comment by loqs (loqs) - Saturday, 14 January 2023, 23:02 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Saturday, 14 January 2023, 23:09 GMT
6.0rc5.r358.gf7c91bf65388 is good.
Comment by loqs (loqs) - Saturday, 14 January 2023, 23:34 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 10:15 GMT
6.0rc5.r82.gef6f5494faf6 is bad.
Comment by loqs (loqs) - Sunday, 15 January 2023, 13:37 GMT
git bisect bad
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 13:48 GMT
6.0rc2.r48.g7269734abbf5 is bad.
Comment by loqs (loqs) - Sunday, 15 January 2023, 14:04 GMT
git bisect bad
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 14:14 GMT
6.0rc1.r38.g18afcf90d880 is good.
Comment by loqs (loqs) - Sunday, 15 January 2023, 14:33 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 14:38 GMT
6.0rc2.r26.gac5e2fb425e1 is bad.
Comment by loqs (loqs) - Sunday, 15 January 2023, 15:02 GMT
git bisect bad
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 15:09 GMT
6.0rc2.r8.gdd164fbfdc20 is good.
Comment by loqs (loqs) - Sunday, 15 January 2023, 15:28 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 15:37 GMT
6.0rc2.r24.g384c687fb4ad is good.
Comment by loqs (loqs) - Sunday, 15 January 2023, 15:54 GMT
git bisect good
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
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 16:02 GMT
6.0rc2.r25.g999b95a72d90 is good.
Comment by loqs (loqs) - Sunday, 15 January 2023, 16:18 GMT
$ git bisect good
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.
Comment by Noah Li (UM-Li) - Sunday, 15 January 2023, 16:49 GMT
Can confirm the bug is solved by reverting this commit. I have created a report on Kernel Bugzilla; thank you very much for all the help!
Comment by Toolybird (Toolybird) - Sunday, 15 January 2023, 21:52 GMT
Awesome support @loqs! Thanks again for your efforts.

Upstream ticket [1]

[1] https://bugzilla.kernel.org/show_bug.cgi?id=216934
Comment by Jan Alexander Steffens (heftig) - Sunday, 15 January 2023, 22:31 GMT

Loading...