2006-10-06 20:43:14

by Samuel Thibault

[permalink] [raw]
Subject: Early keyboard initialization?

Hi,

Is there any reason for initializing the input layer and keyboards so
late? Since prevents from being able to perform alt-sysrqs early, and
blind people who use speakup would like to get early control over the
speech. Here is the patch that they use.

Signed-off-by: Samuel Thibault <[email protected]>

--- /usr/src/linux-2.6.18/drivers/Makefile.orig 2006-10-06 11:34:15.000000000 -0400
+++ drivers/Makefile 2006-10-06 11:34:15.000000000 -0400
@@ -27,6 +27,9 @@

obj-y += serial/
obj-$(CONFIG_PARPORT) += parport/
+obj-$(CONFIG_SERIO) += input/serio/
+obj-$(CONFIG_GAMEPORT) += input/gameport/
+obj-$(CONFIG_INPUT) += input/
obj-y += base/ block/ misc/ mfd/ net/ media/
obj-$(CONFIG_NUBUS) += nubus/
obj-$(CONFIG_ATM) += atm/
@@ -50,9 +53,6 @@
obj-$(CONFIG_USB) += usb/
obj-$(CONFIG_PCI) += usb/
obj-$(CONFIG_USB_GADGET) += usb/gadget/
-obj-$(CONFIG_SERIO) += input/serio/
-obj-$(CONFIG_GAMEPORT) += input/gameport/
-obj-$(CONFIG_INPUT) += input/
obj-$(CONFIG_I2O) += message/
obj-$(CONFIG_RTC_LIB) += rtc/
obj-$(CONFIG_I2C) += i2c/


2006-10-08 01:59:00

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On Friday 06 October 2006 16:42, Samuel Thibault wrote:
> Hi,
>
> Is there any reason for initializing the input layer and keyboards so
> late? Since prevents from being able to perform alt-sysrqs early, and
> blind people who use speakup would like to get early control over the
> speech. Here is the patch that they use.
>

It looks like the change will only work for non-USB input devices since
USB subsystem is initialized much later.

Greg, is there a reason why USB can't be initialized earlier?

Btw, I don't think we need to initialize gameport early and maybe not
entire input but split off input/keyboard in the same fashion that
input/serio and input/gameport are split off.

> Signed-off-by: Samuel Thibault <[email protected]>
>
> --- /usr/src/linux-2.6.18/drivers/Makefile.orig 2006-10-06 11:34:15.000000000 -0400
> +++ drivers/Makefile 2006-10-06 11:34:15.000000000 -0400
> @@ -27,6 +27,9 @@
>
> obj-y += serial/
> obj-$(CONFIG_PARPORT) += parport/
> +obj-$(CONFIG_SERIO) += input/serio/
> +obj-$(CONFIG_GAMEPORT) += input/gameport/
> +obj-$(CONFIG_INPUT) += input/
> obj-y += base/ block/ misc/ mfd/ net/ media/
> obj-$(CONFIG_NUBUS) += nubus/
> obj-$(CONFIG_ATM) += atm/
> @@ -50,9 +53,6 @@
> obj-$(CONFIG_USB) += usb/
> obj-$(CONFIG_PCI) += usb/
> obj-$(CONFIG_USB_GADGET) += usb/gadget/
> -obj-$(CONFIG_SERIO) += input/serio/
> -obj-$(CONFIG_GAMEPORT) += input/gameport/
> -obj-$(CONFIG_INPUT) += input/
> obj-$(CONFIG_I2O) += message/
> obj-$(CONFIG_RTC_LIB) += rtc/
> obj-$(CONFIG_I2C) += i2c/
> -
> 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/
>

--
Dmitry

2006-10-11 20:08:44

by Andrew Morton

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On Sat, 7 Oct 2006 21:58:54 -0400
Dmitry Torokhov <[email protected]> wrote:

> On Friday 06 October 2006 16:42, Samuel Thibault wrote:
> > Hi,
> >
> > Is there any reason for initializing the input layer and keyboards so
> > late? Since prevents from being able to perform alt-sysrqs early, and
> > blind people who use speakup would like to get early control over the
> > speech. Here is the patch that they use.
> >

It'd be nice to get sysrq working as early as poss.

> It looks like the change will only work for non-USB input devices since
> USB subsystem is initialized much later.

USB is usually modular (isn't it?)

> Greg, is there a reason why USB can't be initialized earlier?

Greg's in hiding.

> Btw, I don't think we need to initialize gameport early and maybe not
> entire input but split off input/keyboard in the same fashion that
> input/serio and input/gameport are split off.
>
> > Signed-off-by: Samuel Thibault <[email protected]>
> >
> > --- /usr/src/linux-2.6.18/drivers/Makefile.orig 2006-10-06 11:34:15.000000000 -0400
> > +++ drivers/Makefile 2006-10-06 11:34:15.000000000 -0400
> > @@ -27,6 +27,9 @@
> >
> > obj-y += serial/
> > obj-$(CONFIG_PARPORT) += parport/
> > +obj-$(CONFIG_SERIO) += input/serio/
> > +obj-$(CONFIG_GAMEPORT) += input/gameport/
> > +obj-$(CONFIG_INPUT) += input/
> > obj-y += base/ block/ misc/ mfd/ net/ media/
> > obj-$(CONFIG_NUBUS) += nubus/
> > obj-$(CONFIG_ATM) += atm/
> > @@ -50,9 +53,6 @@
> > obj-$(CONFIG_USB) += usb/
> > obj-$(CONFIG_PCI) += usb/
> > obj-$(CONFIG_USB_GADGET) += usb/gadget/
> > -obj-$(CONFIG_SERIO) += input/serio/
> > -obj-$(CONFIG_GAMEPORT) += input/gameport/
> > -obj-$(CONFIG_INPUT) += input/
> > obj-$(CONFIG_I2O) += message/
> > obj-$(CONFIG_RTC_LIB) += rtc/
> > obj-$(CONFIG_I2C) += i2c/

Anyway, I'll duck this. Samuel, an appropriate way to make this happen
would be to talk Dmitry into a patch, let it cook in his tree for a couple
of months, then merge it into 2.6.20-early.

2006-10-11 20:16:25

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On 10/11/06, Andrew Morton <[email protected]> wrote:

> Anyway, I'll duck this. Samuel, an appropriate way to make this happen
> would be to talk Dmitry into a patch, let it cook in his tree for a couple
> of months, then merge it into 2.6.20-early.
>

I don't have anything against having keyboards initialized early, I
just want hardware to work the same way if possible, at least for more
common hardware. And there are increasing number of USB keyboards in
the wild.

--
Dmitry

2006-10-11 20:29:37

by Randy Dunlap

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On Wed, 11 Oct 2006 13:08:32 -0700 Andrew Morton wrote:

> On Sat, 7 Oct 2006 21:58:54 -0400
> Dmitry Torokhov <[email protected]> wrote:
>
> > On Friday 06 October 2006 16:42, Samuel Thibault wrote:
> > > Hi,
> > >
> > > Is there any reason for initializing the input layer and keyboards so
> > > late? Since prevents from being able to perform alt-sysrqs early, and
> > > blind people who use speakup would like to get early control over the
> > > speech. Here is the patch that they use.
> > >
>
> It'd be nice to get sysrq working as early as poss.
>
> > It looks like the change will only work for non-USB input devices since
> > USB subsystem is initialized much later.
>
> USB is usually modular (isn't it?)
>
> > Greg, is there a reason why USB can't be initialized earlier?
>
> Greg's in hiding.

Many USB controllers depend on PCI init.

> > Btw, I don't think we need to initialize gameport early and maybe not
> > entire input but split off input/keyboard in the same fashion that
> > input/serio and input/gameport are split off.
> >
> > > Signed-off-by: Samuel Thibault <[email protected]>
> > >
> > > --- /usr/src/linux-2.6.18/drivers/Makefile.orig 2006-10-06 11:34:15.000000000 -0400
> > > +++ drivers/Makefile 2006-10-06 11:34:15.000000000 -0400
> > > @@ -27,6 +27,9 @@
> > >
> > > obj-y += serial/
> > > obj-$(CONFIG_PARPORT) += parport/
> > > +obj-$(CONFIG_SERIO) += input/serio/
> > > +obj-$(CONFIG_GAMEPORT) += input/gameport/
> > > +obj-$(CONFIG_INPUT) += input/
> > > obj-y += base/ block/ misc/ mfd/ net/ media/
> > > obj-$(CONFIG_NUBUS) += nubus/
> > > obj-$(CONFIG_ATM) += atm/
> > > @@ -50,9 +53,6 @@
> > > obj-$(CONFIG_USB) += usb/
> > > obj-$(CONFIG_PCI) += usb/
> > > obj-$(CONFIG_USB_GADGET) += usb/gadget/
> > > -obj-$(CONFIG_SERIO) += input/serio/
> > > -obj-$(CONFIG_GAMEPORT) += input/gameport/
> > > -obj-$(CONFIG_INPUT) += input/
> > > obj-$(CONFIG_I2O) += message/
> > > obj-$(CONFIG_RTC_LIB) += rtc/
> > > obj-$(CONFIG_I2C) += i2c/
>
> Anyway, I'll duck this. Samuel, an appropriate way to make this happen
> would be to talk Dmitry into a patch, let it cook in his tree for a couple
> of months, then merge it into 2.6.20-early.


---
~Randy

2006-10-11 23:13:32

by Greg KH

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On Wed, Oct 11, 2006 at 01:08:32PM -0700, Andrew Morton wrote:
> On Sat, 7 Oct 2006 21:58:54 -0400
> Dmitry Torokhov <[email protected]> wrote:
>
> > On Friday 06 October 2006 16:42, Samuel Thibault wrote:
> > > Hi,
> > >
> > > Is there any reason for initializing the input layer and keyboards so
> > > late? Since prevents from being able to perform alt-sysrqs early, and
> > > blind people who use speakup would like to get early control over the
> > > speech. Here is the patch that they use.
> > >
>
> It'd be nice to get sysrq working as early as poss.
>
> > It looks like the change will only work for non-USB input devices since
> > USB subsystem is initialized much later.
>
> USB is usually modular (isn't it?)
>
> > Greg, is there a reason why USB can't be initialized earlier?
>
> Greg's in hiding.

Yeah, under this huge pile of "real work" stuff that I have right now,
sorry about the delay...

It would be fine to get USB working earlier, but we need PCI, and pretty
much everything else up and working first in order for it to be there,
so I don't know how well it would work out.

And yes, it is annoying about how some machines you are locked out of
keyboard support for a long time, I don't know what to really do about
it.

Feel free to mess with the linking order if you want to try to reduce
the delay and see how it works out.

thanks,

greg k-h

2006-10-12 07:43:47

by Giuseppe Bilotta

[permalink] [raw]
Subject: Re: Early keyboard initialization?

On Sat, 7 Oct 2006 21:58:54 -0400, Dmitry Torokhov wrote:

> It looks like the change will only work for non-USB input devices since
> USB subsystem is initialized much later.

Doesn't the BIOS handle USB keyboards someway? (To handle BIOS setup
and stuff like that)

If the BIOS emulates a non-USB keyboard, would it be possible to init
the fake one early and then give up control when the USB subsystem is
initialized?

--
Giuseppe "Oblomov" Bilotta

"I'm never quite so stupid
as when I'm being smart" --Linus van Pelt

2006-10-12 08:10:59

by Jan Engelhardt

[permalink] [raw]
Subject: Re: Early keyboard initialization?


>> It looks like the change will only work for non-USB input devices since
>> USB subsystem is initialized much later.
>
>Doesn't the BIOS handle USB keyboards someway? (To handle BIOS setup
>and stuff like that)
>
>If the BIOS emulates a non-USB keyboard, would it be possible to init
>the fake one early and then give up control when the USB subsystem is
>initialized?

The BIOS seems to handle USB keyboards during BIOS init,
just like it 'emulates' any hard drive as 0x80 when used with int13.

I'd be interested in how USB keyboard only systems handle this - I think
the newer SPARCs on the market fall into this category.


-`J'
--