lkml.org 
[lkml]   [2011]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] thinkpad-acpi: disable alsa volume mixer for SL410/SL510
    Date
    The mute key on SL410/SL510 only works when the alsa volume mixer
    is not enabled. This patch makes the alsa volume mixer disabled
    on the matched SL410/SL510 EC versions.

    Signed-off-by: Keng-Yu Lin <keng-yu.lin@canonical.com>
    ---
    drivers/platform/x86/thinkpad_acpi.c | 12 ++++++++----
    1 files changed, 8 insertions(+), 4 deletions(-)

    BugLink: https://launchpad.net/bugs/595896

    diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
    index eb99223..d4ee8f2 100644
    --- a/drivers/platform/x86/thinkpad_acpi.c
    +++ b/drivers/platform/x86/thinkpad_acpi.c
    @@ -6870,6 +6870,7 @@ err_exit:

    #define TPACPI_VOL_Q_MUTEONLY 0x0001 /* Mute-only control available */
    #define TPACPI_VOL_Q_LEVEL 0x0002 /* Volume control available */
    +#define TPACPI_VOL_Q_IGNORE 0x0003 /* No Volume control available */

    static const struct tpacpi_quirk volume_quirk_table[] __initconst = {
    /* Whitelist volume level on all IBM by default */
    @@ -6886,6 +6887,8 @@ static const struct tpacpi_quirk volume_quirk_table[] __initconst = {
    TPACPI_QEC_LNV('7', 'J', TPACPI_VOL_Q_LEVEL), /* X60t */
    TPACPI_QEC_LNV('7', '7', TPACPI_VOL_Q_LEVEL), /* Z60 */
    TPACPI_QEC_LNV('7', 'F', TPACPI_VOL_Q_LEVEL), /* Z61 */
    + TPACPI_QEC_LNV('6', 'J', TPACPI_VOL_Q_IGNORE), /* SL410/SL510 */
    + TPACPI_QEC_LNV('7', 'X', TPACPI_VOL_Q_IGNORE), /* SL410/SL510 */

    /* Whitelist mute-only on all Lenovo by default */
    { .vendor = PCI_VENDOR_ID_LENOVO,
    @@ -6921,20 +6924,21 @@ static int __init volume_init(struct ibm_init_struct *iibm)
    if (volume_capabilities >= TPACPI_VOL_CAP_MAX)
    return -EINVAL;

    + quirks = tpacpi_check_quirks(volume_quirk_table,
    + ARRAY_SIZE(volume_quirk_table));
    +
    /*
    * The ALSA mixer is our primary interface.
    * When disabled, don't install the subdriver at all
    */
    - if (!alsa_enable) {
    + if (!alsa_enable || quirks & TPACPI_VOL_Q_IGNORE) {
    vdbg_printk(TPACPI_DBG_INIT | TPACPI_DBG_MIXER,
    "ALSA mixer disabled by parameter, "
    "not loading volume subdriver...\n");
    + alsa_enable = 0; /* reflect the quirk status in sysfs */
    return 1;
    }

    - quirks = tpacpi_check_quirks(volume_quirk_table,
    - ARRAY_SIZE(volume_quirk_table));
    -
    switch (volume_capabilities) {
    case TPACPI_VOL_CAP_AUTO:
    if (quirks & TPACPI_VOL_Q_MUTEONLY)
    --
    1.7.1


    \
     
     \ /
      Last update: 2011-03-15 10:27    [W:0.019 / U:32.144 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site