ALSA: usb-audio: Turn off 'manual mode' on Dell dock
authorJan Schär <jan@jschaer.ch>
Mon, 27 Jun 2022 17:18:55 +0000 (19:18 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 4 Jul 2022 12:27:16 +0000 (14:27 +0200)
commit2e57a3358dda20128593fff9b39b522f1bdd26c6
tree3a041aaa0f0fcf9df2bf90b8c071b4da18a73e4c
parent4b8ea38fabab45ad911a32a336416062553dfe9c
ALSA: usb-audio: Turn off 'manual mode' on Dell dock

This removes the need to power cycle the Dell WD15 dock if it has been
attached to a Windows machine.

The Windows driver puts the ALC4020 USB audio controller into
'manual mode', and then does all the power management and other
configuration itself, by sending HD audio commands directly to the
ALC3263 audio codec via vendor-type USB messages. If manual mode is off,
this is all handled by the firmware, and works well enough.

If manual mode is turned on, the latency of the SET INTERFACE command
goes from several hundred ms to less than 1 ms
(see https://bugzilla.suse.com/show_bug.cgi?id=1089467), but I'm not
sure if the additional code that would be required is worth it.

Funnily enough, the Windows driver tries to turn off manual mode when
the dock is disconnected, which doesn't work for obvious reasons.

Additionally, fix a bug in dell_dock_init_vol, which didn't work because
the Control Selector was missing.
Now, it properly resets the volume to 0dB.

Fixes: 964af639ad69 ("ALSA: usb-audio: Initialize Dell Dock playback volumes")
Signed-off-by: Jan Schär <jan@jschaer.ch>
Link: https://lore.kernel.org/r/20220627171855.42338-2-jan@jschaer.ch
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/usb/mixer_quirks.c