Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

0 views
Skip to first unread message

Tom Gundersen

unread,
Sep 2, 2013, 2:50:02 PM9/2/13
to
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 <t...@jklm.no>
Cc: Dmitry Torokhov <dmitry....@gmail.com>
---
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

richard -rw- weinberger

unread,
Sep 2, 2013, 5:10:01 PM9/2/13
to
Maybe this a stupid question, but why are you dropping the "!X86" too?
--
Thanks,
//richard

Geert Uytterhoeven

unread,
Sep 2, 2013, 5:40:01 PM9/2/13
to
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 -- ge...@linux-m68k.org

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

Tom Gundersen

unread,
Sep 2, 2013, 5:50:01 PM9/2/13
to
Precisely.

-t

Tom Gundersen

unread,
Sep 3, 2013, 9:50:02 AM9/3/13
to
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

Tom Gundersen

unread,
Sep 3, 2013, 9:50:03 AM9/3/13
to
Sorry, this resend was accidental, please ignore. I only intended to
send patch 2/2.

Tom Gundersen

unread,
Sep 3, 2013, 9:50:03 AM9/3/13
to
Moust (if not all) modern software, including X, uses /dev/eventX rather than
the legacy /dev/mouseX devices. It therefore makes sense for general-purpose
(distro) kernels to use MOUSEDV=m (or even n), so let's drop the EXPERT=y
requirement.

Signed-off-by: Tom Gundersen <t...@jklm.no>
Cc: Dmitry Torokhov <dmitry....@gmail.com>
---
drivers/input/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index 38b523a..a11ff74 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -80,7 +80,7 @@ config INPUT_MATRIXKMAP
comment "Userland interfaces"

config INPUT_MOUSEDEV
- tristate "Mouse interface" if EXPERT
+ tristate "Mouse interface"
default y
help
Say Y here if you want your mouse to be accessible as char devices

Matthew Garrett

unread,
Sep 3, 2013, 11:10:02 AM9/3/13
to
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 | mj...@srcf.ucam.org

Tom Gundersen

unread,
Sep 3, 2013, 12:30:05 PM9/3/13
to
On Tue, Sep 3, 2013 at 5:02 PM, Matthew Garrett <mj...@srcf.ucam.org> 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

Dmitry Torokhov

unread,
Sep 3, 2013, 3:30:02 PM9/3/13
to
On Tue, Sep 03, 2013 at 06:25:28PM +0200, Tom Gundersen wrote:
> On Tue, Sep 3, 2013 at 5:02 PM, Matthew Garrett <mj...@srcf.ucam.org> 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

Matthew Garrett

unread,
Sep 3, 2013, 3:40:02 PM9/3/13
to
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 | mj...@srcf.ucam.org

Tom Gundersen

unread,
Sep 4, 2013, 5:30:02 AM9/4/13
to
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 <mj...@srcf.ucam.org>
Cc: Dmitry Torokhov <dmitry....@gmail.com>
Signed-off-by: Tom Gundersen <t...@jklm.no>
---

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

Tom Gundersen

unread,
Oct 4, 2013, 8:30:02 AM10/4/13
to
On Wed, Sep 4, 2013 at 11:27 AM, Tom Gundersen <t...@jklm.no> 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 <mj...@srcf.ucam.org>
> Cc: Dmitry Torokhov <dmitry....@gmail.com>
> Signed-off-by: Tom Gundersen <t...@jklm.no>
> --


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

Tom Gundersen

unread,
Oct 30, 2013, 10:40:02 AM10/30/13
to
On Fri, Oct 4, 2013 at 2:26 PM, Tom Gundersen <t...@jklm.no> wrote:
> On Wed, Sep 4, 2013 at 11:27 AM, Tom Gundersen <t...@jklm.no> 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 <mj...@srcf.ucam.org>
>> Cc: Dmitry Torokhov <dmitry....@gmail.com>
>> Signed-off-by: Tom Gundersen <t...@jklm.no>
>> --
>
>
> 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

Dmitry Torokhov

unread,
Oct 31, 2013, 3:50:02 AM10/31/13
to
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 <mj...@srcf.ucam.org>
> Cc: Dmitry Torokhov <dmitry....@gmail.com>
> Signed-off-by: Tom Gundersen <t...@jklm.no>

Applied, thank you.

--
Dmitry
0 new messages