Re: [patch] 2.6.0-test5: serio config broken?

Tom Rini
2003-09-10T15:55:48Z

On Wed, Sep 10, 2003 at 01:02:25PM +0200, Adrian Bunk wrote:

> On Tue, Sep 09, 2003 at 09:40:15PM +1000, Eyal Lebedinsky wrote:
> >...
> In -test4 I have:
> >
> > CONFIG_SERIO=m
> > CONFIG_SERIO_I8042=m
> > CONFIG_SERIO_SERPORT=m
> > CONFIG_SERIO_CT82C710=m
> > CONFIG_SERIO_PARKBD=m
> > CONFIG_SERIO_PCIPS2=m
> >
> > but -test5 insists on:
> >
> > CONFIG_SERIO=m
> > CONFIG_SERIO_I8042=y
> > CONFIG_SERIO_SERPORT=m
> > CONFIG_SERIO_CT82C710=m
> > CONFIG_SERIO_PARKBD=m
> > CONFIG_SERIO_PCIPS2=m
> >
> > Removing the I8042 line and doing 'make oldconfig' does not even
> > ask about it but sets it to '=y'. As a result I get:
> >
> > LD init/built-in.o
> > LD .tmp_vmlinux1
> > drivers/built-in.o: In function `atkbd_interrupt':
> > drivers/built-in.o(.text+0x6d10f): undefined reference to `serio_rescan'
> > drivers/built-in.o: In function `atkbd_disconnect':
> > drivers/built-in.o(.text+0x6d726): undefined reference to `serio_close'
> > drivers/built-in.o: In function `atkbd_connect':
> > drivers/built-in.o(.text+0x6d84e): undefined reference to `serio_open'
> > drivers/built-in.o(.text+0x6d883): undefined reference to `serio_close'
> > drivers/built-in.o: In function `atkbd_init':
> > drivers/built-in.o(.init.text+0x5fd6): undefined reference to
> > `serio_register_de
> > vice'
> > drivers/built-in.o: In function `atkbd_exit':
> > drivers/built-in.o(.exit.text+0x196): undefined reference to
> > `serio_unregister_d
> > evice'
> > make: *** [.tmp_vmlinux1] Error 1
>
> The patch below should fix it.
>
> cu
> Adrian
>
> --- linux-2.6.0-test4-mm5-modular-no-smp/drivers/input/keyboard/Kconfig.old 2003-09-04 19:03:45.000000000 +0200
> +++ linux-2.6.0-test4-mm5-modular-no-smp/drivers/input/keyboard/Kconfig 2003-09-04 19:04:49.000000000 +0200
> @@ -13,7 +13,8 @@
>
> config KEYBOARD_ATKBD
> tristate "AT keyboard support" if EMBEDDED || !X86
> - default y
> + default y if INPUT=y && INPUT_KEYBOARD=y && SERIO=y
> + default m
> depends on INPUT && INPUT_KEYBOARD && SERIO
> help
> Say Y here if you want to use a standard AT or PS/2 keyboard. Usually
> --- linux-2.6.0-test5+tr-modular-no-smp/drivers/input/serio/Kconfig.old 2003-09-10 12:52:22.000000000 +0200
> +++ linux-2.6.0-test5+tr-modular-no-smp/drivers/input/serio/Kconfig 2003-09-10 12:52:47.000000000 +0200
> @@ -20,7 +20,8 @@
>
> config SERIO_I8042
> tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
> - default y
> + default y if SERIO=y
> + default m
> depends on SERIO
> ---help---
> i8042 is the chip over which the standard AT keyboard and PS/2

A slightly better fix is for SERIO to default to Y on X86 and to
'select SERIO_I8042 if X86'. Then have INPUT_KEYBOARD similarly select
KEYBOARD_ATKBD.

Or, IMHO, even better would be my patch to remove EMBEDDED and replace
it with STANDARD || NONSTD_ABI which also fixes the wierd uses of
EMBEDDED we have now.

--
Tom Rini