[Bug 174835] [uaudio] uaudio fails to create pcm/dsp device file

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 22 Oct 2024 22:59:08 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=174835

porok777@gmx.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |porok777@gmx.com

--- Comment #4 from porok777@gmx.com ---
(In reply to Christos Margiolis from comment #3)
14.1-CURRENT is.


# sysctl hw.usb.uaudio.debug=15
$ dmesg

ugen0.6: <Pioneer PIONEER DDJ-ERGO> at usbus0
uaudio1 on uhub1
uaudio1: <Pioneer PIONEER DDJ-ERGO, class 0/0, rev 1.10/1.41, addr 10> on
usbus0
uaudio_mixer_fill_info: found AC header, vers=100, len=43
uaudio_mixer_fill_info: Maximum ID=4
uaudio_mixer_fill_info: id=4 subtype=3
uaudio_mixer_fill_info: id=3 subtype=2
uaudio_mixer_fill_info: id=2 subtype=3
uaudio_mixer_fill_info: id=1 subtype=2
uaudio_chan_fill_info_sub: Found HID interface at 5
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_dump_ep_desc: endpoint=0xfffff80054f59aea bLength=9
bDescriptorType=5 
bEndpointAddress=1 bmAttributes=0x9 
wMaxPacketSize=544 bInterval=1 
bRefresh=0 bSynchAddress=0
uaudio_chan_fill_info_sub: Sample rate = 44100Hz, channels = 4, bits = 24,
format = 24-bit S-LE PCM, ep 0x01, chan 0xfffffe0113744c48
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_dump_ep_desc: endpoint=0xfffff80054f59b1e bLength=9
bDescriptorType=5 
bEndpointAddress=129 bmAttributes=0xd 
wMaxPacketSize=272 bInterval=1 
bRefresh=0 bSynchAddress=0
uaudio_chan_fill_info_sub: Sample rate = 44100Hz, channels = 2, bits = 24,
format = 24-bit S-LE PCM, ep 0x81, chan 0xfffffe0113744058
uaudio_record_fix_fs: Workaround: Updated wMaxPacketSize from 272 to 330 bytes.
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_chan_fill_info_sub: Wrong number of channels
uaudio_attach: audio rev 1.00
uaudio_attach: 0 mixer controls
uaudio1: Play[0]: 44100 Hz, 4 ch, 24-bit S-LE PCM format, 2x4ms buffer.
(selected)
uaudio1: Record[0]: 44100 Hz, 2 ch, 24-bit S-LE PCM format, 2x4ms buffer.
(selected)
uaudio1: MIDI sequencer.
umidi_bulk_read_callback: start
uaudio_attach: doing child attach
pcm5 on uaudio1
uaudio_attach_sub: software controlled main volume
uaudio_mixer_init_sub: child=0
pcm5: Mixer "vol" -> "none": child=0x00000010
pcm5: Mixer "pcm": parent="vol"
pcm5: Soft PCM mixer ENABLED
umidi_bulk_read_callback: actlen=16 bytes
umidi_bulk_read_callback: start
uaudio_chan_init: Worst case buffer is 8472 bytes
uaudio_chan_init: Worst case buffer is 4236 bytes
uaudio_chan_set_param_speed: Selecting alt 0
uaudio_chan_set_param_speed: Selecting alt 0
uaudio_chan_set_param_format: Selecting format 0x00410000
uaudio_chan_set_param_speed: Selecting alt 0
uaudio_chan_set_param_speed: Selecting alt 0
uaudio_chan_set_param_format: Selecting format 0x00210000
uaudio_hid_probe: Did not find any volume related keys
uaudio1: No HID volume keys found.
uaudio_mixer_write_cfg_callback: 
uhid1 on uhub1
uhid1: <Pioneer PIONEER DDJ-ERGO, class 0/0, rev 1.10/1.41, addr 10> on usbus0.


$ sysctl dev.pcm.5

dev.pcm.5.feedback_rate: 0
dev.pcm.5.mode: 7
dev.pcm.5.bitperfect: 0
dev.pcm.5.buffersize: 0
dev.pcm.5.rec.vchanformat: s16le:2.0
dev.pcm.5.rec.vchanrate: 44100
dev.pcm.5.rec.vchanmode: fixed
dev.pcm.5.rec.vchans: 1
dev.pcm.5.play.vchanformat: s16le:2.0
dev.pcm.5.play.vchanrate: 44100
dev.pcm.5.play.vchanmode: fixed
dev.pcm.5.play.vchans: 1
dev.pcm.5.hwvol_mixer: vol
dev.pcm.5.hwvol_step: 5
dev.pcm.5.%parent: uaudio1
dev.pcm.5.%pnpinfo: 
dev.pcm.5.%location: 
dev.pcm.5.%driver: pcm
dev.pcm.5.%desc: Pioneer PIONEER DDJ-ERGO


# sysctl hw.snd.verbose=2
$ cat /dev/sndstat

pcm5: <Pioneer PIONEER DDJ-ERGO> on uaudio1 (1p:1v/1r:1v)
        snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
        [pcm5:play:dsp5.p0]: spd 44100, fmt 0x00200010/0x00410000, flags
0x00002100, 0x00000046
        interrupts 0, underruns 0, feed 0, ready 0
[b:4248/2124/2|bs:2048/1024/2]
        channel flags=0x2100<BUSY,HAS_VCHAN>
        {userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->
0x00201000) -> feeder_matrix(2.0 -> 4.0) -> feeder_format(0x00401000 ->
0x00410000) -> {hardware}
        pcm5:play:dsp5.p0[pcm5:virtual:dsp5.vp0]: spd 8000, fmt 0x00100008,
flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        channel flags=0x10000000<VIRTUAL>
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm5:record:dsp5.r0]: spd 44100, fmt 0x00200010/0x00210000, flags
0x00002100, 0x00000007
        interrupts 0, overruns 0, feed 0, hfree 2124, sfree 2048
[b:2124/1062/2|bs:2048/1024/2]
        channel flags=0x2100<BUSY,HAS_VCHAN>
        {hardware} -> feeder_root(0x00210000) -> feeder_format(0x00210000 ->
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
        pcm5:record:dsp5.r0[pcm5:virtual:dsp5.vr0]: spd 8000, fmt 0x00100008,
flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        channel flags=0x10000000<VIRTUAL>
        {hardware} -> feeder_root(0x00000000) -> {userland}


Device has 4 channels output, 2 channels input, but on mixer only 2 channels as
1x stereo is recognized as pcm, vol.

pcm5:record:dsp5.r0 can be accessed and used to record (at least works with
programs using  audio/miniaudio), but is not listed on mixer(8)

2 more devices with similar behavior are available if logs would be useful.

-- 
You are receiving this mail because:
You are the assignee for the bug.