lkml.org 
[lkml]   [2010]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [114/223] ALSA: HDA: Add fixup pins for Ideapad Y550
    Date
    2.6.35-longterm review patch.  If anyone has any objections, please let me know.

    ------------------
    From: David Henningsson <david.henningsson@canonical.com>

    commit 6cb3b707f95954ac18f19b4b3919af235738371a upstream.

    By adding the subwoofer as a speaker pin, it is treated correctly when auto-muting.

    BugLink: https://launchpad.net/bugs/611803
    Signed-off-by: David Henningsson <david.henningsson@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    Signed-off-by: Andi Kleen <ak@linux.intel.com>

    ---
    sound/pci/hda/patch_realtek.c | 26 +++++++++++++++++++++++++-
    1 file changed, 25 insertions(+), 1 deletion(-)

    Index: linux/sound/pci/hda/patch_realtek.c
    ===================================================================
    --- linux.orig/sound/pci/hda/patch_realtek.c
    +++ linux/sound/pci/hda/patch_realtek.c
    @@ -18679,6 +18679,26 @@ static void alc662_auto_init(struct hda_
    alc_inithook(codec);
    }

    +enum {
    + ALC662_FIXUP_IDEAPAD,
    +};
    +
    +static const struct alc_fixup alc662_fixups[] = {
    + [ALC662_FIXUP_IDEAPAD] = {
    + .pins = (const struct alc_pincfg[]) {
    + { 0x17, 0x99130112 }, /* subwoofer */
    + { }
    + }
    + },
    +};
    +
    +static struct snd_pci_quirk alc662_fixup_tbl[] = {
    + SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
    + {}
    +};
    +
    +
    +
    static int patch_alc662(struct hda_codec *codec)
    {
    struct alc_spec *spec;
    @@ -18711,6 +18731,7 @@ static int patch_alc662(struct hda_codec
    }

    if (board_config == ALC662_AUTO) {
    + alc_pick_fixup(codec, alc662_fixup_tbl, alc662_fixups, 1);
    /* automatic parse from the BIOS config */
    err = alc662_parse_auto_config(codec);
    if (err < 0) {
    @@ -18769,8 +18790,11 @@ static int patch_alc662(struct hda_codec
    spec->vmaster_nid = 0x02;

    codec->patch_ops = alc_patch_ops;
    - if (board_config == ALC662_AUTO)
    + if (board_config == ALC662_AUTO) {
    spec->init_hook = alc662_auto_init;
    + alc_pick_fixup(codec, alc662_fixup_tbl, alc662_fixups, 0);
    + }
    +
    #ifdef CONFIG_SND_HDA_POWER_SAVE
    if (!spec->loopback.amplist)
    spec->loopback.amplist = alc662_loopbacks;

    \
     
     \ /
      Last update: 2010-12-13 01:13    [W:2.165 / U:0.864 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site