2013-09-02 18:46:27

by Tom Gundersen

[permalink] [raw]
Subject: [PATCH] input: allow SERIO=m even without EXPERT=y

There is plenty of consumer hardware (e.g., mac books) that does not use
AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
to build the related drivers as modules to avoid loading them on hardware
that does not need them. As such, these options should no longer be protected
by EXPERT.

Moreover, building these drivers as modules gets rid of the following ugly
error during boot:

[ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
[ 3.439537] i8042: No controller found

Signed-off-by: Tom Gundersen <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
---
drivers/input/keyboard/Kconfig | 4 ++--
drivers/input/serio/Kconfig | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
index 269d4c3..2d31cec 100644
--- a/drivers/input/keyboard/Kconfig
+++ b/drivers/input/keyboard/Kconfig
@@ -2,7 +2,7 @@
# Input core configuration
#
menuconfig INPUT_KEYBOARD
- bool "Keyboards" if EXPERT || !X86
+ bool "Keyboards"
default y
help
Say Y here, and a list of supported keyboards will be displayed.
@@ -67,7 +67,7 @@ config KEYBOARD_ATARI
module will be called atakbd.

config KEYBOARD_ATKBD
- tristate "AT keyboard" if EXPERT || !X86
+ tristate "AT keyboard"
default y
select SERIO
select SERIO_LIBPS2
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
index 1e691a3..39c869d 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -2,7 +2,7 @@
# Input core configuration
#
config SERIO
- tristate "Serial I/O support" if EXPERT || !X86
+ tristate "Serial I/O support"
default y
help
Say Yes here if you have any input device that uses serial I/O to
@@ -19,7 +19,7 @@ config SERIO
if SERIO

config SERIO_I8042
- tristate "i8042 PC Keyboard controller" if EXPERT || !X86
+ tristate "i8042 PC Keyboard controller"
default y
depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
(!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !S390 && \
@@ -170,7 +170,7 @@ config SERIO_MACEPS2
module will be called maceps2.

config SERIO_LIBPS2
- tristate "PS/2 driver library" if EXPERT
+ tristate "PS/2 driver library"
depends on SERIO_I8042 || SERIO_I8042=n
help
Say Y here if you are using a driver for device connected
--
1.8.4


2013-09-02 21:01:40

by Richard Weinberger

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Mon, Sep 2, 2013 at 8:47 PM, Tom Gundersen <[email protected]> wrote:
> There is plenty of consumer hardware (e.g., mac books) that does not use
> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
> to build the related drivers as modules to avoid loading them on hardware
> that does not need them. As such, these options should no longer be protected
> by EXPERT.
>
> Moreover, building these drivers as modules gets rid of the following ugly
> error during boot:
>
> [ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
> [ 3.439537] i8042: No controller found
>
> Signed-off-by: Tom Gundersen <[email protected]>
> Cc: Dmitry Torokhov <[email protected]>
> ---
> drivers/input/keyboard/Kconfig | 4 ++--
> drivers/input/serio/Kconfig | 6 +++---
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
> index 269d4c3..2d31cec 100644
> --- a/drivers/input/keyboard/Kconfig
> +++ b/drivers/input/keyboard/Kconfig
> @@ -2,7 +2,7 @@
> # Input core configuration
> #
> menuconfig INPUT_KEYBOARD
> - bool "Keyboards" if EXPERT || !X86
> + bool "Keyboards"

Maybe this a stupid question, but why are you dropping the "!X86" too?

> default y
> help
> Say Y here, and a list of supported keyboards will be displayed.
> @@ -67,7 +67,7 @@ config KEYBOARD_ATARI
> module will be called atakbd.
>
> config KEYBOARD_ATKBD
> - tristate "AT keyboard" if EXPERT || !X86
> + tristate "AT keyboard"
> default y
> select SERIO
> select SERIO_LIBPS2
> diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
> index 1e691a3..39c869d 100644
> --- a/drivers/input/serio/Kconfig
> +++ b/drivers/input/serio/Kconfig
> @@ -2,7 +2,7 @@
> # Input core configuration
> #
> config SERIO
> - tristate "Serial I/O support" if EXPERT || !X86
> + tristate "Serial I/O support"
> default y
> help
> Say Yes here if you have any input device that uses serial I/O to
> @@ -19,7 +19,7 @@ config SERIO
> if SERIO
>
> config SERIO_I8042
> - tristate "i8042 PC Keyboard controller" if EXPERT || !X86
> + tristate "i8042 PC Keyboard controller"
> default y
> depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \
> (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN && !S390 && \
> @@ -170,7 +170,7 @@ config SERIO_MACEPS2
> module will be called maceps2.
>
> config SERIO_LIBPS2
> - tristate "PS/2 driver library" if EXPERT
> + tristate "PS/2 driver library"
> depends on SERIO_I8042 || SERIO_I8042=n
> help
> Say Y here if you are using a driver for device connected
> --
> 1.8.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/



--
Thanks,
//richard

2013-09-02 21:30:20

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Mon, Sep 2, 2013 at 11:01 PM, richard -rw- weinberger
<[email protected]> wrote:
> On Mon, Sep 2, 2013 at 8:47 PM, Tom Gundersen <[email protected]> wrote:
>> There is plenty of consumer hardware (e.g., mac books) that does not use
>> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
>> to build the related drivers as modules to avoid loading them on hardware
>> that does not need them. As such, these options should no longer be protected
>> by EXPERT.
>>
>> Moreover, building these drivers as modules gets rid of the following ugly
>> error during boot:
>>
>> [ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
>> [ 3.439537] i8042: No controller found
>>
>> Signed-off-by: Tom Gundersen <[email protected]>
>> Cc: Dmitry Torokhov <[email protected]>
>> ---
>> drivers/input/keyboard/Kconfig | 4 ++--
>> drivers/input/serio/Kconfig | 6 +++---
>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
>> index 269d4c3..2d31cec 100644
>> --- a/drivers/input/keyboard/Kconfig
>> +++ b/drivers/input/keyboard/Kconfig
>> @@ -2,7 +2,7 @@
>> # Input core configuration
>> #
>> menuconfig INPUT_KEYBOARD
>> - bool "Keyboards" if EXPERT || !X86
>> + bool "Keyboards"
>
> Maybe this a stupid question, but why are you dropping the "!X86" too?

Because the "if EXPERT" only mattered for X86.

Apply De Morgan and it read like "do not ask the question if !EXPERT && X86".

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2013-09-02 21:46:24

by Tom Gundersen

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Mon, Sep 2, 2013 at 11:30 PM, Geert Uytterhoeven
<[email protected]> wrote:
> On Mon, Sep 2, 2013 at 11:01 PM, richard -rw- weinberger
> <[email protected]> wrote:
>> On Mon, Sep 2, 2013 at 8:47 PM, Tom Gundersen <[email protected]> wrote:
>>> There is plenty of consumer hardware (e.g., mac books) that does not use
>>> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
>>> to build the related drivers as modules to avoid loading them on hardware
>>> that does not need them. As such, these options should no longer be protected
>>> by EXPERT.
>>>
>>> Moreover, building these drivers as modules gets rid of the following ugly
>>> error during boot:
>>>
>>> [ 2.337745] i8042: PNP: No PS/2 controller found. Probing ports directly.
>>> [ 3.439537] i8042: No controller found
>>>
>>> Signed-off-by: Tom Gundersen <[email protected]>
>>> Cc: Dmitry Torokhov <[email protected]>
>>> ---
>>> drivers/input/keyboard/Kconfig | 4 ++--
>>> drivers/input/serio/Kconfig | 6 +++---
>>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
>>> index 269d4c3..2d31cec 100644
>>> --- a/drivers/input/keyboard/Kconfig
>>> +++ b/drivers/input/keyboard/Kconfig
>>> @@ -2,7 +2,7 @@
>>> # Input core configuration
>>> #
>>> menuconfig INPUT_KEYBOARD
>>> - bool "Keyboards" if EXPERT || !X86
>>> + bool "Keyboards"
>>
>> Maybe this a stupid question, but why are you dropping the "!X86" too?
>
> Because the "if EXPERT" only mattered for X86.
>
> Apply De Morgan and it read like "do not ask the question if !EXPERT && X86".

Precisely.

-t

2013-09-03 15:02:32

by Matthew Garrett

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Mon, Sep 02, 2013 at 08:47:10PM +0200, Tom Gundersen wrote:
> There is plenty of consumer hardware (e.g., mac books) that does not use
> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
> to build the related drivers as modules to avoid loading them on hardware
> that does not need them. As such, these options should no longer be protected
> by EXPERT.

There are systems (although, with luck, only *very* old ones) where the
modules won't get autoloaded. You should probably mention that in the
help text.

--
Matthew Garrett | [email protected]

2013-09-03 16:25:52

by Tom Gundersen

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Tue, Sep 3, 2013 at 5:02 PM, Matthew Garrett <[email protected]> wrote:
> On Mon, Sep 02, 2013 at 08:47:10PM +0200, Tom Gundersen wrote:
>> There is plenty of consumer hardware (e.g., mac books) that does not use
>> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
>> to build the related drivers as modules to avoid loading them on hardware
>> that does not need them. As such, these options should no longer be protected
>> by EXPERT.
>
> There are systems (although, with luck, only *very* old ones) where the
> modules won't get autoloaded. You should probably mention that in the
> help text.

Good point, if this turns out to be a problem on current hardware
distros probably want to load the modules automatically at boot by
default.

Does this problem only apply to the i8042 module or also atkbd and libps2?

Cheers,

Tom

2013-09-03 19:24:29

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Tue, Sep 03, 2013 at 06:25:28PM +0200, Tom Gundersen wrote:
> On Tue, Sep 3, 2013 at 5:02 PM, Matthew Garrett <[email protected]> wrote:
> > On Mon, Sep 02, 2013 at 08:47:10PM +0200, Tom Gundersen wrote:
> >> There is plenty of consumer hardware (e.g., mac books) that does not use
> >> AT keyboards or PS/2 mice. It therefore makes sense for distro kernels
> >> to build the related drivers as modules to avoid loading them on hardware
> >> that does not need them. As such, these options should no longer be protected
> >> by EXPERT.
> >
> > There are systems (although, with luck, only *very* old ones) where the
> > modules won't get autoloaded. You should probably mention that in the
> > help text.
>
> Good point, if this turns out to be a problem on current hardware
> distros probably want to load the modules automatically at boot by
> default.

Presumably such systems would carry over their .config which would have
these as built-in.

>
> Does this problem only apply to the i8042 module or also atkbd and libps2?

Atkbd should be able to load automatically (as long as modutils support
SERIO bus, which any recentish - 5 years? - modutils should do).

libps2 should load automatically to resolve dependencies of
atkbd/psmouse.

i8042 is old-style platform driver, so nothing will load it if it is
compiled as a module. This one worries me most.

mousedev should load automatically if something tries to open it's
device nodes.

Thanks.

--
Dmitry

2013-09-03 19:35:59

by Matthew Garrett

[permalink] [raw]
Subject: Re: [PATCH] input: allow SERIO=m even without EXPERT=y

On Tue, Sep 03, 2013 at 12:24:21PM -0700, Dmitry Torokhov wrote:

> Presumably such systems would carry over their .config which would have
> these as built-in.

Yeah, but distributions should still be given guidance on their default
configs.

> i8042 is old-style platform driver, so nothing will load it if it is
> compiled as a module. This one worries me most.

We could add the PNP aliases for it.

--
Matthew Garrett | [email protected]

2013-09-04 09:26:40

by Tom Gundersen

[permalink] [raw]
Subject: [PATCH] input: i8042 - add PNP modaliases

This allows the module to be autoloaded in the common case.

In order to work on non-PnP systems the module should be compiled in or loaded
unconditionally at boot (c.f. modules-load.d(5)), as before.

Cc: Matthew Garrett <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Signed-off-by: Tom Gundersen <[email protected]>
---

This appears to work for me (though I don't have the real hardware to test), I get the following aliases:
alias: acpi*:CPQA0D7:*
alias: pnp:dCPQA0D7*
alias: acpi*:PNP0345:*
alias: pnp:dPNP0345*
alias: acpi*:PNP0344:*
alias: pnp:dPNP0344*
alias: acpi*:PNP0343:*
alias: pnp:dPNP0343*
alias: acpi*:PNP0320:*
alias: pnp:dPNP0320*
alias: acpi*:PNP030B:*
alias: pnp:dPNP030b*
alias: acpi*:PNP030A:*
alias: pnp:dPNP030a*
alias: acpi*:PNP0309:*
alias: pnp:dPNP0309*
alias: acpi*:PNP0306:*
alias: pnp:dPNP0306*
alias: acpi*:PNP0305:*
alias: pnp:dPNP0305*
alias: acpi*:PNP0304:*
alias: pnp:dPNP0304*
alias: acpi*:PNP0303:*
alias: pnp:dPNP0303*
alias: acpi*:PNP0302:*
alias: pnp:dPNP0302*
alias: acpi*:PNP0301:*
alias: pnp:dPNP0301*
alias: acpi*:PNP0300:*
alias: pnp:dPNP0300*

drivers/input/serio/i8042-x86ia64io.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 5f306f7..0ec9abb 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -765,6 +765,7 @@ static struct pnp_device_id pnp_kbd_devids[] = {
{ .id = "CPQA0D7", .driver_data = 0 },
{ .id = "", },
};
+MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);

static struct pnp_driver i8042_pnp_kbd_driver = {
.name = "i8042 kbd",
@@ -786,6 +787,7 @@ static struct pnp_device_id pnp_aux_devids[] = {
{ .id = "SYN0801", .driver_data = 0 },
{ .id = "", },
};
+MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);

static struct pnp_driver i8042_pnp_aux_driver = {
.name = "i8042 aux",
--
1.8.4

2013-10-04 12:26:43

by Tom Gundersen

[permalink] [raw]
Subject: Re: [PATCH] input: i8042 - add PNP modaliases

On Wed, Sep 4, 2013 at 11:27 AM, Tom Gundersen <[email protected]> wrote:
> This allows the module to be autoloaded in the common case.
>
> In order to work on non-PnP systems the module should be compiled in or loaded
> unconditionally at boot (c.f. modules-load.d(5)), as before.
>
> Cc: Matthew Garrett <[email protected]>
> Cc: Dmitry Torokhov <[email protected]>
> Signed-off-by: Tom Gundersen <[email protected]>
> --


Hi Dmitry,

Any comments on this? Any chance of having this (and the two patches
dropping EXPERT=y requirements) included for 3.13 (or even 3.12 if it
is not too late for this kind of stuff)? Let me know if I should
resend the three patches.

Cheers,

Tom

> This appears to work for me (though I don't have the real hardware to test), I get the following aliases:
> alias: acpi*:CPQA0D7:*
> alias: pnp:dCPQA0D7*
> alias: acpi*:PNP0345:*
> alias: pnp:dPNP0345*
> alias: acpi*:PNP0344:*
> alias: pnp:dPNP0344*
> alias: acpi*:PNP0343:*
> alias: pnp:dPNP0343*
> alias: acpi*:PNP0320:*
> alias: pnp:dPNP0320*
> alias: acpi*:PNP030B:*
> alias: pnp:dPNP030b*
> alias: acpi*:PNP030A:*
> alias: pnp:dPNP030a*
> alias: acpi*:PNP0309:*
> alias: pnp:dPNP0309*
> alias: acpi*:PNP0306:*
> alias: pnp:dPNP0306*
> alias: acpi*:PNP0305:*
> alias: pnp:dPNP0305*
> alias: acpi*:PNP0304:*
> alias: pnp:dPNP0304*
> alias: acpi*:PNP0303:*
> alias: pnp:dPNP0303*
> alias: acpi*:PNP0302:*
> alias: pnp:dPNP0302*
> alias: acpi*:PNP0301:*
> alias: pnp:dPNP0301*
> alias: acpi*:PNP0300:*
> alias: pnp:dPNP0300*
>
> drivers/input/serio/i8042-x86ia64io.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index 5f306f7..0ec9abb 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -765,6 +765,7 @@ static struct pnp_device_id pnp_kbd_devids[] = {
> { .id = "CPQA0D7", .driver_data = 0 },
> { .id = "", },
> };
> +MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
>
> static struct pnp_driver i8042_pnp_kbd_driver = {
> .name = "i8042 kbd",
> @@ -786,6 +787,7 @@ static struct pnp_device_id pnp_aux_devids[] = {
> { .id = "SYN0801", .driver_data = 0 },
> { .id = "", },
> };
> +MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
>
> static struct pnp_driver i8042_pnp_aux_driver = {
> .name = "i8042 aux",
> --
> 1.8.4
>

2013-10-30 14:30:31

by Tom Gundersen

[permalink] [raw]
Subject: Re: [PATCH] input: i8042 - add PNP modaliases

On Fri, Oct 4, 2013 at 2:26 PM, Tom Gundersen <[email protected]> wrote:
> On Wed, Sep 4, 2013 at 11:27 AM, Tom Gundersen <[email protected]> wrote:
>> This allows the module to be autoloaded in the common case.
>>
>> In order to work on non-PnP systems the module should be compiled in or loaded
>> unconditionally at boot (c.f. modules-load.d(5)), as before.
>>
>> Cc: Matthew Garrett <[email protected]>
>> Cc: Dmitry Torokhov <[email protected]>
>> Signed-off-by: Tom Gundersen <[email protected]>
>> --
>
>
> Hi Dmitry,
>
> Any comments on this? Any chance of having this (and the two patches
> dropping EXPERT=y requirements) included for 3.13 (or even 3.12 if it
> is not too late for this kind of stuff)? Let me know if I should
> resend the three patches.

Ping? Any chance of seeing this in 3.13?

Cheers,

Tom

2013-10-31 07:44:20

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH] input: i8042 - add PNP modaliases

On Wed, Sep 04, 2013 at 11:27:36AM +0200, Tom Gundersen wrote:
> This allows the module to be autoloaded in the common case.
>
> In order to work on non-PnP systems the module should be compiled in or loaded
> unconditionally at boot (c.f. modules-load.d(5)), as before.
>
> Cc: Matthew Garrett <[email protected]>
> Cc: Dmitry Torokhov <[email protected]>
> Signed-off-by: Tom Gundersen <[email protected]>

Applied, thank you.

--
Dmitry