[PATCH] Add duplex sound support for USB devices using implicit feedback

Alexander Tsoy alexander at tsoy.me
Sat May 23 19:53:49 CEST 2020


В Вс, 10/05/2020 в 20:29 +0200, Erwin Burema пишет:
> For USB sound devices using implicit feedback the endpoint used for
> this feedback should be able to be opened twice, once for required
> feedback and second time for audio data. This way these devices can
> be put in duplex audio mode. Since this only works if the settings of
> the endpoint don't change a check is included for this.
> 
> This fixes bug 207023 ("MOTU M2 regression on duplex audio") and
> should also fix bug 103751 ("M-Audio Fast Track Ultra usb audio
> device will not operate full-duplex")
> 
> Signed-off-by: Erwin Burema <e.burema at gmail.com>
> ---

This patch seems to cause kernel panic on my system. This happens
during boot when gdm (with pulseaudio) is starting up.

$ grep CONFIG_IRQ_FORCED_THREADING /boot/config-5.4.42-gentoo 
CONFIG_IRQ_FORCED_THREADING=y

$ grep threadirqs /proc/cmdline 
BOOT_IMAGE=/vmlinuz-5.4.42-gentoo root=/dev/mapper/vg_system-root ro rd.md.uuid=cdf11511:cf0ca8c5:cc165dc3:3d3d248f rd.luks.uuid=a5a6e532-af4e-49b2-8178-95e54c293799 rd.lvm.lv=vg_system/root rd.lvm.lv=vg_system/swap rd.lvm.lv=vg_system/usr resume=/dev/mapper/vg_system-swap rootflags=relatime,logbufs=8,logbsize=256k rootfstype=xfs init=/lib/systemd/systemd noautogroup loglevel=5 console=ttyS1,115200 console=tty0 threadirqs mgag200.modeset=1

[   60.563598] BUG: unable to handle page fault for address: ffffb80602983ff0
[   60.570478] #PF: supervisor write access in kernel mode
[   60.575701] #PF: error_code(0x0002) - not-present page
[   60.580833] PGD 813498067 P4D 813498067 PUD 813499067 PMD 80e0e0067 PTE 0
[   60.587619] Oops: 0002 [#1] PREEMPT SMP NOPTI
[   60.591979] CPU: 4 PID: 242 Comm: irq/34-xhci_hcd Tainted: G           O    T 5.4.42-gentoo #1
[   60.600585] Hardware name: Supermicro H8SCM/H8SCM, BIOS 3.5b       03/18/2016
[   60.607723] RIP: 0010:__memcpy+0x12/0x20
[   60.611646] Code: c1 e2 20 48 09 c2 48 31 d3 e9 71 ff ff ff 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 89 f8 48 89 d1 48 c1 e9 03 83 e2 07 <f3> 48 a5 89 d1 f3 a4 c3 66 0f 1f 44 00 00 48 89 f8 48 89 d1 f3 a4
[   60.630401] RSP: 0018:ffffb806004a3c80 EFLAGS: 00010046
[   60.635628] RAX: ffffb80602983ff0 RBX: 0000000000000010 RCX: 000000000000000a
[   60.642759] RDX: 0000000000000000 RSI: ffff9d5f6659b000 RDI: ffffb80602983ff0
[   60.649883] RBP: ffff9d5f62c38c00 R08: 0000000000000002 R09: 0000000000000000
[   60.657017] R10: 0000000000000002 R11: 0000000000000001 R12: 0000000000000050
[   60.664160] R13: 0000000000000000 R14: 0000000000079ff0 R15: ffff9d608c1d4908
[   60.671293] FS:  0000000000000000(0000) GS:ffff9d6096b00000(0000) knlGS:0000000000000000
[   60.679380] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   60.685125] CR2: ffffb80602983ff0 CR3: 000000080f55c000 CR4: 00000000000406e0
[   60.692258] Call Trace:
[   60.694719]  retire_capture_urb+0x201/0x270 [snd_usb_audio]
[   60.700288]  snd_complete_urb+0x1b7/0x270 [snd_usb_audio]
[   60.705686]  __usb_hcd_giveback_urb+0x77/0xe0
[   60.710054]  xhci_giveback_urb_in_irq.isra.0+0x6d/0x100
[   60.715278]  xhci_td_cleanup+0xc4/0xe0
[   60.719032]  xhci_irq+0x825/0x1780
[   60.722438]  ? __schedule+0x2c3/0x650
[   60.726105]  ? irq_finalize_oneshot.part.0+0xd0/0xd0
[   60.731071]  irq_forced_thread_fn+0x25/0x70
[   60.735257]  irq_thread+0xea/0x170
[   60.738672]  ? wake_threads_waitq+0x30/0x30
[   60.742859]  kthread+0xf8/0x130
[   60.746005]  ? irq_thread_check_affinity+0x90/0x90
[   60.750805]  ? kthread_park+0x90/0x90
[   60.754473]  ret_from_fork+0x22/0x40
[   60.758053] Modules linked in: ebtable_filter ebtables bridge stp llc netconsole wireguard ip6_udp_tunnel udp_tunnel xt_limit xt_comment xt_recent xt_multiport xt_MASQUERADE iptable_nat nf_nat nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6table_raw iptable_raw snd_seq_midi snd_seq_midi_event amd64_edac_mod kvm_amd kvm pcspkr irqbypass uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videodev snd_hda_codec_hdmi videobuf2_common snd_hda_intel joydev snd_intel_nhlt snd_hda_codec snd_usb_audio sp5100_tco snd_usbmidi_lib snd_rawmidi snd_hwdep e1000e snd_hda_core snd_pcm nfsd tcp_yeah tcp_vegas sch_fq_codel uas amdgpu crc32c_intel mgag200 drm_vram_helper gpu_sched ttm vhost_scsi target_core_mod configfs vhost_net tun tap vhost vhba(O) jc42 ipmi_si ipmi_devintf ipmi_msghandler fuse eeprom
[   60.828924] CR2: ffffb80602983ff0
[   60.832245] ---[ end trace 1945ea8b50798a03 ]---
[   60.836862] RIP: 0010:__memcpy+0x12/0x20
[   60.840797] Code: c1 e2 20 48 09 c2 48 31 d3 e9 71 ff ff ff 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 48 89 f8 48 89 d1 48 c1 e9 03 83 e2 07 <f3> 48 a5 89 d1 f3 a4 c3 66 0f 1f 44 00 00 48 89 f8 48 89 d1 f3 a4
[   60.859553] RSP: 0018:ffffb806004a3c80 EFLAGS: 00010046
[   60.864778] RAX: ffffb80602983ff0 RBX: 0000000000000010 RCX: 000000000000000a
[   60.871911] RDX: 0000000000000000 RSI: ffff9d5f6659b000 RDI: ffffb80602983ff0
[   60.879036] RBP: ffff9d5f62c38c00 R08: 0000000000000002 R09: 0000000000000000
[   60.886168] R10: 0000000000000002 R11: 0000000000000001 R12: 0000000000000050
[   60.893301] R13: 0000000000000000 R14: 0000000000079ff0 R15: ffff9d608c1d4908
[   60.900453] FS:  0000000000000000(0000) GS:ffff9d6096b00000(0000) knlGS:0000000000000000
[   60.908538] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   60.914276] CR2: ffffb80602983ff0 CR3: 000000080f55c000 CR4: 00000000000406e0
[   60.921411] Kernel panic - not syncing: Fatal exception in interrupt
[   60.927783] Kernel Offset: 0x21000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[   60.938554] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---



More information about the Alsa-devel mailing list