lkml.org 
[lkml]   [2006]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 35/45] ALSA: Fix workaround for AD1988A rev2 codec
    -stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: Takashi Iwai <tiwai@suse.de>

    [PATCH] ALSA: Fix workaround for AD1988A rev2 codec

    Fix the workaround for AD1988A rev2 codec not to apply to AD1988B codec
    chips.

    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Jaroslav Kysela <perex@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    sound/pci/hda/patch_analog.c | 15 +++++++++------
    1 file changed, 9 insertions(+), 6 deletions(-)

    --- linux-2.6.17.6.orig/sound/pci/hda/patch_analog.c
    +++ linux-2.6.17.6/sound/pci/hda/patch_analog.c
    @@ -1488,6 +1488,9 @@ enum {
    /* reivision id to check workarounds */
    #define AD1988A_REV2 0x100200

    +#define is_rev2(codec) \
    + ((codec)->vendor_id == 0x11d41988 && \
    + (codec)->revision_id == AD1988A_REV2)

    /*
    * mixers
    @@ -2138,7 +2141,7 @@ static inline hda_nid_t ad1988_idx_to_da
    /* A B C D E F G H */
    0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06
    };
    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    return idx_to_dac_rev2[idx];
    else
    return idx_to_dac[idx];
    @@ -2507,7 +2510,7 @@ static int patch_ad1988(struct hda_codec
    mutex_init(&spec->amp_mutex);
    codec->spec = spec;

    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n");

    board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl);
    @@ -2533,13 +2536,13 @@ static int patch_ad1988(struct hda_codec
    case AD1988_6STACK_DIG:
    spec->multiout.max_channels = 8;
    spec->multiout.num_dacs = 4;
    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    spec->multiout.dac_nids = ad1988_6stack_dac_nids_rev2;
    else
    spec->multiout.dac_nids = ad1988_6stack_dac_nids;
    spec->input_mux = &ad1988_6stack_capture_source;
    spec->num_mixers = 2;
    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    spec->mixers[0] = ad1988_6stack_mixers1_rev2;
    else
    spec->mixers[0] = ad1988_6stack_mixers1;
    @@ -2555,7 +2558,7 @@ static int patch_ad1988(struct hda_codec
    case AD1988_3STACK_DIG:
    spec->multiout.max_channels = 6;
    spec->multiout.num_dacs = 3;
    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2;
    else
    spec->multiout.dac_nids = ad1988_3stack_dac_nids;
    @@ -2563,7 +2566,7 @@ static int patch_ad1988(struct hda_codec
    spec->channel_mode = ad1988_3stack_modes;
    spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes);
    spec->num_mixers = 2;
    - if (codec->revision_id == AD1988A_REV2)
    + if (is_rev2(codec))
    spec->mixers[0] = ad1988_3stack_mixers1_rev2;
    else
    spec->mixers[0] = ad1988_3stack_mixers1;
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-07-17 18:51    [W:4.058 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site