ALSA: hda - Add workaround for conflicting IEC958 controls
authorTakashi Iwai <tiwai@suse.de>
Fri, 12 Oct 2012 15:24:51 +0000 (17:24 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 17 Oct 2012 06:42:00 +0000 (08:42 +0200)
commitdcda5806165c155d90b9aa466a1602cf4726012b
tree2608238090cb39ef41e4950900026fa9434fa4bb
parent9e3d352b3f8be39cab7186fd6213dcd458a29c97
ALSA: hda - Add workaround for conflicting IEC958 controls

When both an SPDIF and an HDMI device are created on the same card
instance, multiple IEC958 controls are created with indices=0, 1, ...
But the alsa-lib configuration can't know which index corresponds
actually to which PCM device, and both the SPDIF and the HDMI
configurations point to the first IEC958 control wrongly.

This patch introduces a (hackish and ugly) workaround: the IEC958
controls for the SPDIF device are re-labeled with device=1 when HDMI
coexists.  The device=1 corresponds to the actual PCM device for
SPDIF, so it's anyway a better representation.  In future, HDMI
controls should be moved with the corresponding PCM device number,
too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c
sound/pci/hda/hda_codec.h
sound/pci/hda/hda_local.h
sound/pci/hda/patch_cirrus.c
sound/pci/hda/patch_hdmi.c
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_sigmatel.c