Hi, I made a patch to fix bug 4657[1] on the tracker. I'm fairly certain that it isn't the correct approach but would like some feedback on what that would be. The power-mappings in patch_sigmatel.c seem to allow you to flip multiple bits. In the case of the Dell docking station, you need to enable some bits while disabling others. Therefore, instead of using the power mappings I just hacked in a quick check to work for the hardware I have on hand. If there is a proper way to fix this that I have missed, I'll be more than happy to fix the patch appropriately. [1] https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4657 Regards, -- Christian Hergert
From 5650b1e722182c1ddd7dcaef6885033a0ef10b9c Mon Sep 17 00:00:00 2001 From: Christian Hergert <chris@xxxxxxxxxxxxx> Date: Mon, 16 Nov 2009 14:27:22 -0800 Subject: [PATCH] ALSA: hda - Add support for Dell E6400 docking station BugLink: https://bugs.launchpad.net/alsa-driver/+bug/383756 BugLink: https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4657 Mute the internal speakers when the output jack on the docking station is enabled. --- sound/pci/hda/patch_sigmatel.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 0f6c33d..ed5d9b1 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4567,6 +4567,17 @@ static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, else val |= idx; + if (codec->vendor_id == 0x111d76b2 && + spec->board_config == STAC_DELL_M4_1 && + idx == 4) { + /* the internal speakers need to be muted when the + * docking station output is enabled. */ + if (enable) + val |= 2; + else + val &= ~2; + } + /* power down unused output ports */ snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val); } -- 1.6.3.3
_______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel