ALSA: hda - Skip Realtek SKU check for Lenovo machines
authorTakashi Iwai <tiwai@suse.de>
Thu, 8 Sep 2016 10:15:02 +0000 (12:15 +0200)
committerTakashi Iwai <tiwai@suse.de>
Fri, 9 Sep 2016 18:41:09 +0000 (20:41 +0200)
Realtek codec driver expects an implicit rule where either the codec
SSID or the pincfg NID 0x1d contains the some information encoded in
some bits.  One of the expected information is there is the
availability of PC beep, and the driver doesn't build up the PC beep
control if this is *supposed* to be disabled there.

Meanwhile, Lenovo doesn't seem to follow this requirement (yes it's
non-standard after all), and the BIOS sets just the normal SSID and
the pincfg values.  This resulted in the lack of PC beep on a few
machines, purely with a lucky or unlucky number.  It didn't bother
most people, but some people still demand the PC beep, as found in bug
reports.

This patch just adds the fixup chain to Lenovo machines to skip the
SKU checks.  Then the beep control will show up in the mixer, and user
can still decide to enable / disable it via the standard mixer
interface.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=156311
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/patch_realtek.c

index 574b1b4..4be2c77 100644 (file)
@@ -5263,6 +5263,8 @@ static const struct hda_fixup alc269_fixups[] = {
        [ALC269_FIXUP_THINKPAD_ACPI] = {
                .type = HDA_FIXUP_FUNC,
                .v.func = hda_fixup_thinkpad_acpi,
+               .chained = true,
+               .chain_id = ALC269_FIXUP_SKU_IGNORE,
        },
        [ALC269_FIXUP_DMIC_THINKPAD_ACPI] = {
                .type = HDA_FIXUP_FUNC,