[PATCH] Use PC-BIOS NUMLOCK flag - Kernel

This is a discussion on [PATCH] Use PC-BIOS NUMLOCK flag - Kernel ; The PC BIOS does provide a NUMLOCK flag containing the desired state of this LED. Use it. Signed-off-by: Bodo Eggert --- char/keyboard.c | 17 +++++++++++++++-- input/keyboard/Kconfig | 11 +++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff -pruNXdontdiff linux-2.6.27.softpanic/drivers/char/keyboard.c linux-2.6.27.2-numlock/drivers/char/keyboard.c ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: [PATCH] Use PC-BIOS NUMLOCK flag

  1. [PATCH] Use PC-BIOS NUMLOCK flag

    The PC BIOS does provide a NUMLOCK flag containing the desired state of this
    LED. Use it.

    Signed-off-by: Bodo Eggert <7eggert@gmx.de>

    ---
    char/keyboard.c | 17 +++++++++++++++--
    input/keyboard/Kconfig | 11 +++++++++++
    2 files changed, 26 insertions(+), 2 deletions(-)


    diff -pruNXdontdiff linux-2.6.27.softpanic/drivers/char/keyboard.c linux-2.6.27.2-numlock/drivers/char/keyboard.c
    --- linux-2.6.27.softpanic/drivers/char/keyboard.c 2008-10-10 13:18:18.000000000 +0200
    +++ linux-2.6.27.2-numlock/drivers/char/keyboard.c 2008-10-10 20:34:44.000000000 +0200
    @@ -24,6 +24,7 @@
    * 21-08-02: Converted to input API, major cleanup. (Vojtech Pavlik)
    */

    +#include
    #include
    #include
    #include
    @@ -61,7 +62,10 @@ extern void ctrl_alt_del(void);
    * to be used for numbers.
    */

    -#if defined(CONFIG_PARISC) && (defined(CONFIG_KEYBOARD_HIL) || defined(CONFIG_KEYBOARD_HIL_OLD))
    +#ifdef CONFIG_KBD_DEFLEDS_PCBIOS
    +/* KBD_DEFLEDS is a variable */
    +#undef KBD_DEFLEDS
    +#elif defined(CONFIG_PARISC) && (defined(CONFIG_KEYBOARD_HIL) || defined(CONFIG_KEYBOARD_HIL_OLD))
    #define KBD_DEFLEDS (1 << VC_NUMLOCK)
    #else
    #define KBD_DEFLEDS 0
    @@ -1406,8 +1410,17 @@ int __init kbd_init(void)
    {
    int i;
    int error;
    +#ifdef CONFIG_KBD_DEFLEDS_PCBIOS
    + int KBD_DEFLEDS = 0;
    + /* address 0x40:0x17 */
    + char * bios_kbd_status=xlate_dev_mem_ptr(0x417);
    +
    + /* Numlock status bit set? */
    + if (*bios_kbd_status & 0x20)
    + KBD_DEFLEDS = 1 << VC_NUMLOCK;
    +#endif

    - for (i = 0; i < MAX_NR_CONSOLES; i++) {
    + for (i = 0; i < MAX_NR_CONSOLES; i++) {
    kbd_table[i].ledflagstate = KBD_DEFLEDS;
    kbd_table[i].default_ledflagstate = KBD_DEFLEDS;
    kbd_table[i].ledmode = LED_SHOW_FLAGS;
    diff -pruNXdontdiff linux-2.6.27.softpanic/drivers/input/keyboard/Kconfig linux-2.6.27.2-numlock/drivers/input/keyboard/Kconfig
    --- linux-2.6.27.softpanic/drivers/input/keyboard/Kconfig 2008-07-13 23:51:29.000000000 +0200
    +++ linux-2.6.27.2-numlock/drivers/input/keyboard/Kconfig 2008-10-10 20:33:52.000000000 +0200
    @@ -12,6 +12,17 @@ menuconfig INPUT_KEYBOARD

    if INPUT_KEYBOARD

    +config KBD_DEFLEDS_PCBIOS
    + bool "Enable Num-Lock based on BIOS settings"
    + depends on X86_PC && EXPERIMENTAL
    + help
    + Turns on Numlock depending on the BIOS settings.
    + This works by reading the BIOS data area as defined for IBM PCs (1981).
    +
    + If you have an alternative firmware like OpenFirmware or LinuxBios,
    + this flag might not be set correctly, which results in a random state
    + of the Numlock key.
    +
    config KEYBOARD_ATKBD
    tristate "AT keyboard" if EMBEDDED || !X86_PC
    default y

    --
    "Oh Guru, what is the secret of Life?"
    "Enjoy the journey, because the destination sucks."
    -- Gandalf Parker
    --
    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/

  2. Re: [PATCH] Use PC-BIOS NUMLOCK flag

    Hello,

    Bodo Eggert, le Thu 16 Oct 2008 13:59:49 +0200, a écrit :
    > + If you have an alternative firmware like OpenFirmware or LinuxBios,
    > + this flag might not be set correctly, which results in a random state
    > + of the Numlock key.


    That's an issue. That means that distributions will just not enable,
    and thus the flag is not really useful, since people who would
    compile their own kernel would very likely have already setup their
    initialization scripts into calling setleds +num (or just set LEDS=+num
    in /etc/console-tools/config on a debian machine).

    Samuel
    --
    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/

  3. Re: [PATCH] Use PC-BIOS NUMLOCK flag

    On Thu, 16 Oct 2008, Samuel Thibault wrote:
    > Bodo Eggert, le Thu 16 Oct 2008 13:59:49 +0200, a écrit :


    > > + If you have an alternative firmware like OpenFirmware or LinuxBios,
    > > + this flag might not be set correctly, which results in a random state
    > > + of the Numlock key.

    >
    > That's an issue. That means that distributions will just not enable,
    > and thus the flag is not really useful, since people who would
    > compile their own kernel would very likely have already setup their
    > initialization scripts into calling setleds +num (or just set LEDS=+num
    > in /etc/console-tools/config on a debian machine).


    I hope somebody will pop up and say "Hey, those will create an IBM PC data
    area, because they run DOS" ...
    --
    "Try to look unimportant; they may be low on ammo."
    -Infantry Journal

  4. Re: [PATCH] Use PC-BIOS NUMLOCK flag

    Bodo Eggert, le Thu 16 Oct 2008 20:00:31 +0200, a écrit :
    > On Thu, 16 Oct 2008, Samuel Thibault wrote:
    > > Bodo Eggert, le Thu 16 Oct 2008 13:59:49 +0200, a écrit :

    >
    > > > + If you have an alternative firmware like OpenFirmware or LinuxBios,
    > > > + this flag might not be set correctly, which results in a random state
    > > > + of the Numlock key.

    > >
    > > That's an issue. That means that distributions will just not enable,
    > > and thus the flag is not really useful, since people who would
    > > compile their own kernel would very likely have already setup their
    > > initialization scripts into calling setleds +num (or just set LEDS=+num
    > > in /etc/console-tools/config on a debian machine).

    >
    > I hope somebody will pop up and say "Hey, those will create an IBM PC data
    > area, because they run DOS" ...


    Mmm, or rather "hey, here are the patches to fix those BIOSes"

    Samuel
    --
    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/

  5. Re: [PATCH] Use PC-BIOS NUMLOCK flag

    On Thu 2008-10-16 21:11:06, Samuel Thibault wrote:
    > Bodo Eggert, le Thu 16 Oct 2008 20:00:31 +0200, a écrit :
    > > On Thu, 16 Oct 2008, Samuel Thibault wrote:
    > > > Bodo Eggert, le Thu 16 Oct 2008 13:59:49 +0200, a écrit :

    > >
    > > > > + If you have an alternative firmware like OpenFirmware or LinuxBios,
    > > > > + this flag might not be set correctly, which results in a random state
    > > > > + of the Numlock key.
    > > >
    > > > That's an issue. That means that distributions will just not enable,
    > > > and thus the flag is not really useful, since people who would
    > > > compile their own kernel would very likely have already setup their
    > > > initialization scripts into calling setleds +num (or just set LEDS=+num
    > > > in /etc/console-tools/config on a debian machine).

    > >
    > > I hope somebody will pop up and say "Hey, those will create an IBM PC data
    > > area, because they run DOS" ...

    >
    > Mmm, or rather "hey, here are the patches to fix those BIOSes"


    Broken bioses being around should not penalize working bioses. Patch
    looks good to me. Yes, I consider LinuxBios broken in this regard.

    --
    (english) http://www.livejournal.com/~pavelmachek
    (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pav...rses/blog.html
    --
    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/

+ Reply to Thread