Re: 2.6.16-mm1

From: Russell King
Date: Fri Mar 24 2006 - 14:56:36 EST


On Fri, Mar 24, 2006 at 12:28:27PM +0100, Roman Zippel wrote:
> Hi,
>
> On Thu, 23 Mar 2006, Russell King wrote:
>
> > Okay, so the default is now 'm', but the legal values are still only 'n'
> > and 'm'. I can only select 'm' or 'n', and this is what I end up with in
> > the config file. Now, if I remove the prompt text:
> >
> > config SYM_D
> > tristate
> > depends on SYM_M && SYM_Y
> > default y
> >
> > and hey presto, suddenly 'y' becomes a legal value.
> >
> > CONFIG_SYM_Y=y
> > CONFIG_SYM_M=m
> > CONFIG_SYM_D=y
> >
> > So it would seem to be a Kconfig bug.
>
> No, it's not a bug, that's really the correct behaviour. It has its roots
> in the cml1 converter, where statements like this:
>
> if [ "$CONFIG_FOO" = "y" ]; then
> define_tristate CONFIG_BAR y
> fi
>
> would become:
>
> config BAR
> default y
> depends on FOO=y

Okay, so going to the exact problem case, the behaviour we require is:

SERIAL_8250 PCI EMBEDDED gives SERIAL_8250_PCI
n X X n
X n X n
m y n m
y y n y
m y y user selects 'm' or 'n'
y y y user selects 'y', 'm' or 'n'

the correct way to tell Kconfig to give us that is:

+config SERIAL_8250_PCI
+ tristate "8250/16550 PCI device support" if EMBEDDED
+ depends on SERIAL_8250 && PCI
+ default SERIAL_8250
+ help
+ This builds standard PCI serial support. You may be able to
+ disable this feature if you only need legacy serial support.
+ Saves about 9K.

?

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/