https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287813

--- Comment #17 from J.R. Oldroyd <f...@opal.com> ---
My /usr/local/etc/pulse/daemon.conf is all commented out except for turning on
debug to syslog:

log-target=syslog
log-level=debug

client.conf is also all commented out.

default.pa and system.pa do load various modules.

So when pactl runs pulseaudio, it loads those modules and somewhere along the
line it opens the dsp device and does various ioctls after which there is
dialog on the USB bus between the driver and the device as shown in [2] and [4]
of the OP.  Then pulseaudio exits, closing the device.

The ioctls appear to be these:

ioctl FIONBIO 1
ioctl SNDCTL_DSP_SETFMT 16
ioctl SNDCTL_DSP_CHANNELS 2
ioctl SNDCTL_DSP_SPEED 48000
ioctl SNDCTL_DSP_SETFRAGMENT 262156

Not sure if that's complete, but a C program that does those same calls is not
enough to "fix" the behavior, suggesting that the dialog to the device is
important.

The old (pre-D50488, broken) close code possibly was not resetting the device
so it retains the settings from that dialog and works.  The patched
(post-D50488) close code may send a device reset on close which causes settings
to be lost, hence it doesn't work.

We may have to decode that usbdump to figure out what the dialog is so that the
necessary commands can be sent on device open.

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

Reply via email to