lkml.org 
[lkml]   [2005]   [Sep]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 8/26] i8042 - fix IRQ printing when either KBD or AUX port
    Date
    From
    Subject: [PATCH] Input: i8042 - fix IRQ printing when either KBD or AUX port
    From: Dmitry Torokhov <dtor_core@ameritech.net>
    Date: 1125816111 -0500
    is absent from ACPI/PNP tables.

    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

    ---

    drivers/input/serio/i8042-x86ia64io.h | 39 +++++++++++++++++++++------------
    1 files changed, 25 insertions(+), 14 deletions(-)

    c3d31e7f9a94800ba895a081e143e79954f6c62f
    diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
    --- a/drivers/input/serio/i8042-x86ia64io.h
    +++ b/drivers/input/serio/i8042-x86ia64io.h
    @@ -258,7 +258,8 @@ static void i8042_pnp_exit(void)

    static int __init i8042_pnp_init(void)
    {
    - int result_kbd, result_aux;
    + int result_kbd = 0, result_aux = 0;
    + char kbd_irq_str[4] = { 0 }, aux_irq_str[4] = { 0 };

    if (i8042_nopnp) {
    printk(KERN_INFO "i8042: PNP detection disabled\n");
    @@ -267,6 +268,7 @@ static int __init i8042_pnp_init(void)

    if ((result_kbd = pnp_register_driver(&i8042_pnp_kbd_driver)) >= 0)
    i8042_pnp_kbd_registered = 1;
    +
    if ((result_aux = pnp_register_driver(&i8042_pnp_aux_driver)) >= 0)
    i8042_pnp_aux_registered = 1;

    @@ -280,6 +282,25 @@ static int __init i8042_pnp_init(void)
    #endif
    }

    + if (result_kbd > 0)
    + snprintf(kbd_irq_str, sizeof(kbd_irq_str),
    + "%d", i8042_pnp_kbd_irq);
    + if (result_aux > 0)
    + snprintf(aux_irq_str, sizeof(aux_irq_str),
    + "%d", i8042_pnp_aux_irq);
    +
    + printk(KERN_INFO "PNP: PS/2 Controller [%s%s%s] at %#x,%#x irq %s%s%s\n",
    + i8042_pnp_kbd_name, (result_kbd > 0 && result_aux > 0) ? "," : "",
    + i8042_pnp_aux_name,
    + i8042_pnp_data_reg, i8042_pnp_command_reg,
    + kbd_irq_str, (result_kbd > 0 && result_aux > 0) ? "," : "",
    + aux_irq_str);
    +
    +#if defined(__ia64__)
    + if (result_aux <= 0)
    + i8042_noaux = 1;
    +#endif
    +
    if (((i8042_pnp_data_reg & ~0xf) == (i8042_data_reg & ~0xf) &&
    i8042_pnp_data_reg != i8042_data_reg) || !i8042_pnp_data_reg) {
    printk(KERN_WARNING "PNP: PS/2 controller has invalid data port %#x; using default %#x\n",
    @@ -295,30 +316,20 @@ static int __init i8042_pnp_init(void)
    }

    if (!i8042_pnp_kbd_irq) {
    - printk(KERN_WARNING "PNP: PS/2 controller doesn't have KBD irq; using default %#x\n", i8042_kbd_irq);
    + printk(KERN_WARNING "PNP: PS/2 controller doesn't have KBD irq; using default %d\n", i8042_kbd_irq);
    i8042_pnp_kbd_irq = i8042_kbd_irq;
    }

    - if (!i8042_pnp_aux_irq) {
    - printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; using default %#x\n", i8042_aux_irq);
    + if (!i8042_noaux && !i8042_pnp_aux_irq) {
    + printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; using default %d\n", i8042_aux_irq);
    i8042_pnp_aux_irq = i8042_aux_irq;
    }

    -#if defined(__ia64__)
    - if (result_aux <= 0)
    - i8042_noaux = 1;
    -#endif
    -
    i8042_data_reg = i8042_pnp_data_reg;
    i8042_command_reg = i8042_pnp_command_reg;
    i8042_kbd_irq = i8042_pnp_kbd_irq;
    i8042_aux_irq = i8042_pnp_aux_irq;

    - printk(KERN_INFO "PNP: PS/2 Controller [%s%s%s] at %#x,%#x irq %d%s%d\n",
    - i8042_pnp_kbd_name, (result_kbd > 0 && result_aux > 0) ? "," : "", i8042_pnp_aux_name,
    - i8042_data_reg, i8042_command_reg, i8042_kbd_irq,
    - (result_aux > 0) ? "," : "", i8042_aux_irq);
    -
    return 0;
    }

    -
    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: 2005-09-11 00:41    [W:0.022 / U:184.816 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site