[PATCH] ALSA: hda - HDMI Audio init all connectors

From: Steven Newbury
Date: Thu Jun 07 2012 - 01:52:41 EST


When VGA_SWITCHEROO support is enabled hda_intel initialises the HDMI audio device on the current VGA device. When it's not enabled it only initialises the HDMI device on the default VGA adaptor, this means secondary cards get no audio support which is very unhelpful for multi-seat!

With this patch, when SUPPORT_VGA_SWITCHEROO is disabled hda_intel initialises all HDMI audio devices, not just the default VGA.

Signed-off-by: Steven Newbury <steve@xxxxxxxxxxxxxxx>
commit 8989f0e53f7108d099fb7c5fdb76f58d3a63f85a
Author: Steven Newbury <steve@xxxxxxxxxxxxxxx>
Date: Wed Jun 6 23:52:13 2012 +0100

ALSA: hda - Always initialise all HDMI audio connectors
when SUPPORT_VGA_SWITCHEROO is disabled

diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e924722..f207549 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2484,9 +2484,9 @@ static void azx_notifier_unregister(struct azx *chip)
static int DELAYED_INIT_MARK azx_first_init(struct azx *chip);
static int DELAYED_INIT_MARK azx_probe_continue(struct azx *chip);

+#ifdef SUPPORT_VGA_SWITCHEROO
static struct pci_dev __devinit *get_bound_vga(struct pci_dev *pci);

-#ifdef SUPPORT_VGA_SWITCHEROO
static void azx_vs_set_state(struct pci_dev *pci,
enum vga_switcheroo_state state)
{
@@ -2641,6 +2641,7 @@ static int azx_dev_free(struct snd_device *device)
/*
* Check of disabled HDMI controller by vga-switcheroo
*/
+#ifdef SUPPORT_VGA_SWITCHEROO
static struct pci_dev __devinit *get_bound_vga(struct pci_dev *pci)
{
struct pci_dev *p;
@@ -2663,10 +2664,12 @@ static struct pci_dev __devinit *get_bound_vga(struct pci_dev *pci)
}
return NULL;
}
+#endif /* SUPPORT_VGA_SWITCHER */

static bool __devinit check_hdmi_disabled(struct pci_dev *pci)
{
bool vga_inactive = false;
+#ifdef SUPPORT_VGA_SWITCHEROO
struct pci_dev *p = get_bound_vga(pci);

if (p) {
@@ -2674,6 +2677,7 @@ static bool __devinit check_hdmi_disabled(struct pci_dev *pci)
vga_inactive = true;
pci_dev_put(p);
}
+#endif
return vga_inactive;
}