lkml.org 
[lkml]   [2011]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[01/63] ALSA: HDA: Realtek: Avoid unnecessary volume control index on Surround/Side
    2.6.38-stable review patch.  If anyone has any objections, please let us know.

    ------------------

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

    commit 5a8826463c19b0d1a2fc60b2adac0ec318047844 upstream.

    Similar to commit 7e59e097c09b82760bb0fe08b0fa2b704d76c3f4, this patch
    avoids unnecessary volume control indices for more
    Realtek auto-parsers, e g the ALC66x family, on the "Surround" and "Side"
    controls.
    These indices cause these volume controls to be ignored by PulseAudio and
    vmaster and should be removed whenever possible.

    Reported-by: Jan Losinski <losinski@wh2.tu-dresden.de>
    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>

    ---
    sound/pci/hda/patch_realtek.c | 25 +++++++++++++++++--------
    1 file changed, 17 insertions(+), 8 deletions(-)

    --- a/sound/pci/hda/patch_realtek.c
    +++ b/sound/pci/hda/patch_realtek.c
    @@ -16085,9 +16085,12 @@ static int alc861_auto_create_multi_out_
    return err;
    } else {
    const char *name = pfx;
    - if (!name)
    + int index = i;
    + if (!name) {
    name = chname[i];
    - err = __alc861_create_out_sw(codec, name, nid, i, 3);
    + index = 0;
    + }
    + err = __alc861_create_out_sw(codec, name, nid, index, 3);
    if (err < 0)
    return err;
    }
    @@ -17238,16 +17241,19 @@ static int alc861vd_auto_create_multi_ou
    return err;
    } else {
    const char *name = pfx;
    - if (!name)
    + int index = i;
    + if (!name) {
    name = chname[i];
    + index = 0;
    + }
    err = __add_pb_vol_ctrl(spec, ALC_CTL_WIDGET_VOL,
    - name, i,
    + name, index,
    HDA_COMPOSE_AMP_VAL(nid_v, 3, 0,
    HDA_OUTPUT));
    if (err < 0)
    return err;
    err = __add_pb_sw_ctrl(spec, ALC_CTL_BIND_MUTE,
    - name, i,
    + name, index,
    HDA_COMPOSE_AMP_VAL(nid_s, 3, 2,
    HDA_INPUT));
    if (err < 0)
    @@ -19296,12 +19302,15 @@ static int alc662_auto_create_multi_out_
    return err;
    } else {
    const char *name = pfx;
    - if (!name)
    + int index = i;
    + if (!name) {
    name = chname[i];
    - err = __alc662_add_vol_ctl(spec, name, nid, i, 3);
    + index = 0;
    + }
    + err = __alc662_add_vol_ctl(spec, name, nid, index, 3);
    if (err < 0)
    return err;
    - err = __alc662_add_sw_ctl(spec, name, mix, i, 3);
    + err = __alc662_add_sw_ctl(spec, name, mix, index, 3);
    if (err < 0)
    return err;
    }



    \
     
     \ /
      Last update: 2011-03-26 01:35    [W:4.132 / U:0.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site