lkml.org 
[lkml]   [2012]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[34-longterm 137/196] ALSA: hda - MacBookPro 5,3 line-in support
    Date
    From: Vince Weaver <vweaver1@eecs.utk.edu>

    -------------------
    This is a commit scheduled for the next v2.6.34 longterm release.
    If you see a problem with using this for longterm, please comment.
    -------------------

    commit 4e7d7c6018567fa03f387d06602d4145c75ebbe0 upstream.

    I've found the following patch is necessary to enable line-in on
    my MacBookPro 5,3 machine. With the patch applied I've successfully
    recorded audio from the line-in jack. This is based on the existing
    5,5 support.

    Signed-off-by: Vince Weaver <vweaver1@eecs.utk.edu>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    ---
    sound/pci/hda/patch_cirrus.c | 22 +++++++++++++++++++++-
    1 file changed, 21 insertions(+), 1 deletion(-)

    diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
    index 350ee8a..1c6d1c3 100644
    --- a/sound/pci/hda/patch_cirrus.c
    +++ b/sound/pci/hda/patch_cirrus.c
    @@ -65,6 +65,7 @@ struct cs_spec {

    /* available models */
    enum {
    + CS420X_MBP53,
    CS420X_MBP55,
    CS420X_IMAC27,
    CS420X_AUTO,
    @@ -838,7 +839,8 @@ static void cs_automute(struct hda_codec *codec)
    AC_VERB_SET_PIN_WIDGET_CONTROL,
    hp_present ? 0 : PIN_OUT);
    }
    - if (spec->board_config == CS420X_MBP55 ||
    + if (spec->board_config == CS420X_MBP53 ||
    + spec->board_config == CS420X_MBP55 ||
    spec->board_config == CS420X_IMAC27) {
    unsigned int gpio = hp_present ? 0x02 : 0x08;
    snd_hda_codec_write(codec, 0x01, 0,
    @@ -1080,6 +1082,7 @@ static int cs_parse_auto_config(struct hda_codec *codec)
    }

    static const char *cs420x_models[CS420X_MODELS] = {
    + [CS420X_MBP53] = "mbp53",
    [CS420X_MBP55] = "mbp55",
    [CS420X_IMAC27] = "imac27",
    [CS420X_AUTO] = "auto",
    @@ -1087,6 +1090,7 @@ static const char *cs420x_models[CS420X_MODELS] = {


    static struct snd_pci_quirk cs420x_cfg_tbl[] = {
    + SND_PCI_QUIRK(0x10de, 0x0ac0, "MacBookPro 5,3", CS420X_MBP53),
    SND_PCI_QUIRK(0x10de, 0xcb79, "MacBookPro 5,5", CS420X_MBP55),
    SND_PCI_QUIRK(0x8086, 0x7270, "IMac 27 Inch", CS420X_IMAC27),
    {} /* terminator */
    @@ -1097,6 +1101,20 @@ struct cs_pincfg {
    u32 val;
    };

    +static struct cs_pincfg mbp53_pincfgs[] = {
    + { 0x09, 0x012b4050 },
    + { 0x0a, 0x90100141 },
    + { 0x0b, 0x90100140 },
    + { 0x0c, 0x018b3020 },
    + { 0x0d, 0x90a00110 },
    + { 0x0e, 0x400000f0 },
    + { 0x0f, 0x01cbe030 },
    + { 0x10, 0x014be060 },
    + { 0x12, 0x400000f0 },
    + { 0x15, 0x400000f0 },
    + {} /* terminator */
    +};
    +
    static struct cs_pincfg mbp55_pincfgs[] = {
    { 0x09, 0x012b4030 },
    { 0x0a, 0x90100121 },
    @@ -1126,6 +1144,7 @@ static struct cs_pincfg imac27_pincfgs[] = {
    };

    static struct cs_pincfg *cs_pincfgs[CS420X_MODELS] = {
    + [CS420X_MBP53] = mbp53_pincfgs,
    [CS420X_MBP55] = mbp55_pincfgs,
    [CS420X_IMAC27] = imac27_pincfgs,
    };
    @@ -1158,6 +1177,7 @@ static int patch_cs420x(struct hda_codec *codec)

    switch (spec->board_config) {
    case CS420X_IMAC27:
    + case CS420X_MBP53:
    case CS420X_MBP55:
    /* GPIO1 = headphones */
    /* GPIO3 = speakers */
    --
    1.7.9.3


    \
     
     \ /
      Last update: 2012-03-13 01:47    [W:3.994 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site