* [Linux-ia64] AT Keyboard not present?
@ 2001-09-07 17:49 KOCHI Takayoshi
2001-09-07 19:05 ` Krishnakumar B
` (14 more replies)
0 siblings, 15 replies; 16+ messages in thread
From: KOCHI Takayoshi @ 2001-09-07 17:49 UTC (permalink / raw)
To: linux-ia64
Recently I noticed
keyboard: Timeout - AT keyboard not present?
message appears when the kernel tries to control keyboard LEDs
(i.e. CAPS, NumLock, ScrLock).
I don't see any symptoms in X environment, this is only at
VGA console. I remember this was the behavior of ia64 linux of
very early days, but fixed at some point.
Does someone have ideas?
Regards,
--
KOCHI Takayoshi <t-kouchi@cq.jp.nec.com/t-kouchi@mvf.biglobe.ne.jp>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
@ 2001-09-07 19:05 ` Krishnakumar B
2001-09-07 19:36 ` Johannes Erdfelt
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Krishnakumar B @ 2001-09-07 19:05 UTC (permalink / raw)
To: linux-ia64
On Friday, 7 September 2001, KOCHI Takayoshi wrote:
> Recently I noticed
>
> keyboard: Timeout - AT keyboard not present?
I guess this happens because you are using a USB keyboard and the kernel
looks for a PS/2 keyboard. New machines from Dell ship with a USB keyboard
by default. Till the USB modules are loaded, I see this error (once or
twice). Once the USB modules are loaded, this message disappears. Is there
any way to prevent this happening ? I saw that when using RedHat's kernel,
this message doesn't show up. What do I need to suppress this message if I
have a USB keyboard ?
-kitty.
--
Krishnakumar B <kitty at cs dot wustl dot edu>
Distributed Object Computing Laboratory, Washington University in St.Louis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
2001-09-07 19:05 ` Krishnakumar B
@ 2001-09-07 19:36 ` Johannes Erdfelt
2001-09-07 19:55 ` Krishnakumar B
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Johannes Erdfelt @ 2001-09-07 19:36 UTC (permalink / raw)
To: linux-ia64
On Fri, Sep 07, 2001, Krishnakumar B <kitty@cs.wustl.edu> wrote:
> On Friday, 7 September 2001, KOCHI Takayoshi wrote:
> > Recently I noticed
> >
> > keyboard: Timeout - AT keyboard not present?
>
> I guess this happens because you are using a USB keyboard and the kernel
> looks for a PS/2 keyboard. New machines from Dell ship with a USB keyboard
> by default. Till the USB modules are loaded, I see this error (once or
> twice). Once the USB modules are loaded, this message disappears. Is there
> any way to prevent this happening ? I saw that when using RedHat's kernel,
> this message doesn't show up. What do I need to suppress this message if I
> have a USB keyboard ?
The only way to supress the message is to hack it out of the kernel.
The message comes from the fact the BIOS does legacy device emulation
for USB keyboards and mice. I think the ia64 BIOS supports this as well.
However, the emulation isn't perfect and will cause messages like this.
When the HC driver loads, it turns this off and natively handles the USB
keyboard.
The real fix is to use USB drivers as early as possible. The emulation
wasn't designed to be perfect.
JE
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
2001-09-07 19:05 ` Krishnakumar B
2001-09-07 19:36 ` Johannes Erdfelt
@ 2001-09-07 19:55 ` Krishnakumar B
2001-09-07 20:02 ` Johannes Erdfelt
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Krishnakumar B @ 2001-09-07 19:55 UTC (permalink / raw)
To: linux-ia64
On Friday, 7 September 2001, Johannes Erdfelt wrote:
>
> The only way to supress the message is to hack it out of the kernel.
>
> The message comes from the fact the BIOS does legacy device emulation
> for USB keyboards and mice. I think the ia64 BIOS supports this as well.
> However, the emulation isn't perfect and will cause messages like this.
>
> When the HC driver loads, it turns this off and natively handles the USB
> keyboard.
>
> The real fix is to use USB drivers as early as possible.
How does one do this ? Can it be loaded via initrd ? I got some symbol
referencing errors while doing this. Then the uhci module was loaded as
usual when booting and this time there were no symbol referencing errors.
-kitty.
--
Krishnakumar B <kitty at cs dot wustl dot edu>
Distributed Object Computing Laboratory, Washington University in St.Louis
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (2 preceding siblings ...)
2001-09-07 19:55 ` Krishnakumar B
@ 2001-09-07 20:02 ` Johannes Erdfelt
2001-09-07 20:09 ` Khalid Aziz
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Johannes Erdfelt @ 2001-09-07 20:02 UTC (permalink / raw)
To: linux-ia64
On Fri, Sep 07, 2001, Krishnakumar B <kitty@cs.wustl.edu> wrote:
> On Friday, 7 September 2001, Johannes Erdfelt wrote:
> >
> > The only way to supress the message is to hack it out of the kernel.
> >
> > The message comes from the fact the BIOS does legacy device emulation
> > for USB keyboards and mice. I think the ia64 BIOS supports this as well.
> > However, the emulation isn't perfect and will cause messages like this.
> >
> > When the HC driver loads, it turns this off and natively handles the USB
> > keyboard.
> >
> > The real fix is to use USB drivers as early as possible.
>
> How does one do this ? Can it be loaded via initrd ? I got some symbol
> referencing errors while doing this. Then the uhci module was loaded as
> usual when booting and this time there were no symbol referencing errors.
There should be no reason it can't be loaded via initrd.
Any symbol problems would most likely be a problem with the distribution
you are using.
JE
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (3 preceding siblings ...)
2001-09-07 20:02 ` Johannes Erdfelt
@ 2001-09-07 20:09 ` Khalid Aziz
2001-09-07 20:12 ` KOCHI Takayoshi
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Khalid Aziz @ 2001-09-07 20:09 UTC (permalink / raw)
To: linux-ia64
The problem gets worse when you do not have a PS2 controller on the
machine at all. Kernel spews out a screenful of this message as it boots
up. An easy way to get rid of these messages is to undefine
KBD_REPORT_TIMEOUTS in pc_keyb.h. This still does not get rid of the
delays caused by the timeouts. If I could figure out a way to reliably
determine if the PS2 controller exists or not, I would like to get rid
of the delays as well.
--
Khalid
Johannes Erdfelt wrote:
>
> On Fri, Sep 07, 2001, Krishnakumar B <kitty@cs.wustl.edu> wrote:
> > On Friday, 7 September 2001, KOCHI Takayoshi wrote:
> > > Recently I noticed
> > >
> > > keyboard: Timeout - AT keyboard not present?
> >
> > I guess this happens because you are using a USB keyboard and the kernel
> > looks for a PS/2 keyboard. New machines from Dell ship with a USB keyboard
> > by default. Till the USB modules are loaded, I see this error (once or
> > twice). Once the USB modules are loaded, this message disappears. Is there
> > any way to prevent this happening ? I saw that when using RedHat's kernel,
> > this message doesn't show up. What do I need to suppress this message if I
> > have a USB keyboard ?
>
> The only way to supress the message is to hack it out of the kernel.
>
> The message comes from the fact the BIOS does legacy device emulation
> for USB keyboards and mice. I think the ia64 BIOS supports this as well.
> However, the emulation isn't perfect and will cause messages like this.
>
> When the HC driver loads, it turns this off and natively handles the USB
> keyboard.
>
> The real fix is to use USB drivers as early as possible. The emulation
> wasn't designed to be perfect.
>
> JE
>
> _______________________________________________
> Linux-IA64 mailing list
> Linux-IA64@linuxia64.org
> http://lists.linuxia64.org/lists/listinfo/linux-ia64
--
==================================
Khalid Aziz Linux Systems Operation R&D
(970)898-9214 Hewlett-Packard
khalid@fc.hp.com Fort Collins, CO
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (4 preceding siblings ...)
2001-09-07 20:09 ` Khalid Aziz
@ 2001-09-07 20:12 ` KOCHI Takayoshi
2001-09-10 8:46 ` Martin Wilck
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: KOCHI Takayoshi @ 2001-09-07 20:12 UTC (permalink / raw)
To: linux-ia64
Sorry, I didn't include the configuration of my machine.
It was a BigSur with a PS/2 keyboard and a PS/2 mouse.
I didn't configure usb driver in the kernel nor load
as a module.
On Fri, 7 Sep 2001 14:05:52 -0500
Krishnakumar B <kitty@cs.wustl.edu> wrote:
> On Friday, 7 September 2001, KOCHI Takayoshi wrote:
> > Recently I noticed
> >
> > keyboard: Timeout - AT keyboard not present?
>
> I guess this happens because you are using a USB keyboard and the kernel
> looks for a PS/2 keyboard. New machines from Dell ship with a USB keyboard
> by default. Till the USB modules are loaded, I see this error (once or
> twice). Once the USB modules are loaded, this message disappears. Is there
> any way to prevent this happening ? I saw that when using RedHat's kernel,
> this message doesn't show up. What do I need to suppress this message if I
> have a USB keyboard ?
Regards,
--
KOCHI Takayoshi <t-kouchi@cq.jp.nec.com/t-kouchi@mvf.biglobe.ne.jp>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (5 preceding siblings ...)
2001-09-07 20:12 ` KOCHI Takayoshi
@ 2001-09-10 8:46 ` Martin Wilck
2001-09-10 21:43 ` Michael Madore
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Martin Wilck @ 2001-09-10 8:46 UTC (permalink / raw)
To: linux-ia64
On Fri, 7 Sep 2001, KOCHI Takayoshi wrote:
> It was a BigSur with a PS/2 keyboard and a PS/2 mouse.
> I didn't configure usb driver in the kernel nor load
> as a module.
I have the same here with no USB on the machine at all. I think
I had it since 2.4.7. The keyboard works fine, though - obviously
timeouts occur randomly but usually the keyboard answers requests
just fine.
Martin
--
Martin Wilck Phone: +49 5251 8 15113
Fujitsu Siemens Computers Fax: +49 5251 8 20409
Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com
D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (6 preceding siblings ...)
2001-09-10 8:46 ` Martin Wilck
@ 2001-09-10 21:43 ` Michael Madore
2001-09-10 22:10 ` Luck, Tony
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Michael Madore @ 2001-09-10 21:43 UTC (permalink / raw)
To: linux-ia64
I can verify this on my BigSur as well. No USB peripherals and no
modules loaded. Hitting the CAPS lock key causes the message and a
delay. The keyboard LED never comes on. This machine was recently
upgraded to BIOS 117, and also to kernel 2.4.9.
Martin Wilck wrote:
>
> On Fri, 7 Sep 2001, KOCHI Takayoshi wrote:
>
> > It was a BigSur with a PS/2 keyboard and a PS/2 mouse.
> > I didn't configure usb driver in the kernel nor load
> > as a module.
>
> I have the same here with no USB on the machine at all. I think
> I had it since 2.4.7. The keyboard works fine, though - obviously
> timeouts occur randomly but usually the keyboard answers requests
> just fine.
>
> Martin
>
> --
> Martin Wilck Phone: +49 5251 8 15113
> Fujitsu Siemens Computers Fax: +49 5251 8 20409
> Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com
> D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
>
> _______________________________________________
> Linux-IA64 mailing list
> Linux-IA64@linuxia64.org
> http://lists.linuxia64.org/lists/listinfo/linux-ia64
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (7 preceding siblings ...)
2001-09-10 21:43 ` Michael Madore
@ 2001-09-10 22:10 ` Luck, Tony
2001-09-10 23:28 ` David Mosberger
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Luck, Tony @ 2001-09-10 22:10 UTC (permalink / raw)
To: linux-ia64
Same test also fails in 2.4.7 ... I found a 2.4.3 kernel
still in my /boot/efi, capslock test works with that.
In 2.4.7/2.4.9 even though the caps-lock light never comes
on and the timeout message is printed, caps lock mode *is*
turned on (subsequent alphabetic chars echo in upper-case).
-Tony
-----Original Message-----
From: Michael Madore [mailto:mmadore@turbolinux.com]
Sent: Monday, September 10, 2001 2:43 PM
To: Martin Wilck
Cc: KOCHI Takayoshi; linux-ia64@linuxia64.org
Subject: Re: [Linux-ia64] AT Keyboard not present?
I can verify this on my BigSur as well. No USB peripherals and no
modules loaded. Hitting the CAPS lock key causes the message and a
delay. The keyboard LED never comes on. This machine was recently
upgraded to BIOS 117, and also to kernel 2.4.9.
Martin Wilck wrote:
>
> On Fri, 7 Sep 2001, KOCHI Takayoshi wrote:
>
> > It was a BigSur with a PS/2 keyboard and a PS/2 mouse.
> > I didn't configure usb driver in the kernel nor load
> > as a module.
>
> I have the same here with no USB on the machine at all. I think
> I had it since 2.4.7. The keyboard works fine, though - obviously
> timeouts occur randomly but usually the keyboard answers requests
> just fine.
>
> Martin
>
> --
> Martin Wilck Phone: +49 5251 8 15113
> Fujitsu Siemens Computers Fax: +49 5251 8 20409
> Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com
> D-33106 Paderborn http://www.fujitsu-siemens.com/primergy
>
> _______________________________________________
> Linux-IA64 mailing list
> Linux-IA64@linuxia64.org
> http://lists.linuxia64.org/lists/listinfo/linux-ia64
_______________________________________________
Linux-IA64 mailing list
Linux-IA64@linuxia64.org
http://lists.linuxia64.org/lists/listinfo/linux-ia64
^ permalink raw reply [flat|nested] 16+ messages in thread
* RE: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (8 preceding siblings ...)
2001-09-10 22:10 ` Luck, Tony
@ 2001-09-10 23:28 ` David Mosberger
2001-09-19 13:35 ` Richard Hirst
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: David Mosberger @ 2001-09-10 23:28 UTC (permalink / raw)
To: linux-ia64
>>>>> On Mon, 10 Sep 2001 15:10:24 -0700, "Luck, Tony" <tony.luck@intel.com> said:
tony> Same test also fails in 2.4.7 ... I found a 2.4.3 kernel still
tony> in my /boot/efi, capslock test works with that.
tony> In 2.4.7/2.4.9 even though the caps-lock light never comes on
tony> and the timeout message is printed, caps lock mode *is* turned
tony> on (subsequent alphabetic chars echo in upper-case).
I suspect the problem was introduced in 2.4.7 (or thereabouts) when
the keyboard interface was changed. I didn't notice it until a few
days ago because it only happens when working at the Linux console.
While it's not a fatal problem, it would be good if it were fixed. A
patch would be welcome.
--david
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (9 preceding siblings ...)
2001-09-10 23:28 ` David Mosberger
@ 2001-09-19 13:35 ` Richard Hirst
2001-09-19 21:49 ` David Mosberger
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Richard Hirst @ 2001-09-19 13:35 UTC (permalink / raw)
To: linux-ia64
On Fri, Sep 07, 2001 at 10:49:07AM -0700, KOCHI Takayoshi wrote:
> Recently I noticed
>
> keyboard: Timeout - AT keyboard not present?
>
> message appears when the kernel tries to control keyboard LEDs
> (i.e. CAPS, NumLock, ScrLock).
> I don't see any symptoms in X environment, this is only at
> VGA console. I remember this was the behavior of ia64 linux of
> very early days, but fixed at some point.
>
> Does someone have ideas?
The following patch fixes this for me. It seems that after the SET_LEDS
command is written, the keyboard sets it's status bit to say the acknowledge
is available, but never generates an interrupt. Or maybe it does
generate the interrupt and somehow it gets cleared without the keyboard
driver being called.
Richard
--- linux.ori/drivers/char/pc_keyb.c Tue Aug 14 23:49:50 2001
+++ build-itanium/drivers/char/pc_keyb.c Wed Sep 19 15:18:14 2001
@@ -512,6 +512,19 @@
reply_expected = 1;
kbd_write_output_w(data);
for (;;) {
+#ifdef __ia64__
+ /* On my ia64 box, at least, we don't always get an int
+ * from the k/b when the acknowledge is available, so
+ * do a manual status check. Interrupts are enabled
+ * (jiffies changes, at least).
+ * Richard Hirst <rhirst@linuxcare.com>
+ */
+ unsigned long flags;
+
+ spin_lock_irqsave(&kbd_controller_lock, flags);
+ handle_kbd_event();
+ spin_unlock_irqrestore(&kbd_controller_lock, flags);
+#endif
if (acknowledge)
return 1;
if (resend)
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (10 preceding siblings ...)
2001-09-19 13:35 ` Richard Hirst
@ 2001-09-19 21:49 ` David Mosberger
2001-09-19 22:27 ` Richard Hirst
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: David Mosberger @ 2001-09-19 21:49 UTC (permalink / raw)
To: linux-ia64
>>>>> On Wed, 19 Sep 2001 14:35:24 +0100, Richard Hirst <rhirst@linuxcare.com> said:
Richard> The following patch fixes this for me. It seems that after
Richard> the SET_LEDS command is written, the keyboard sets it's
Richard> status bit to say the acknowledge is available, but never
Richard> generates an interrupt. Or maybe it does generate the
Richard> interrupt and somehow it gets cleared without the keyboard
Richard> driver being called.
Glad to see you're making progress on this, but the patch looks
suspicious to me. There shouldn't be anything ia64 specific in this
code. It would be good to understand why the keyboard interrupt gets
lost.
--david
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (11 preceding siblings ...)
2001-09-19 21:49 ` David Mosberger
@ 2001-09-19 22:27 ` Richard Hirst
2001-09-20 22:56 ` Richard Hirst
2001-09-21 15:44 ` David Mosberger
14 siblings, 0 replies; 16+ messages in thread
From: Richard Hirst @ 2001-09-19 22:27 UTC (permalink / raw)
To: linux-ia64
On Wed, Sep 19, 2001 at 02:49:28PM -0700, David Mosberger wrote:
> Glad to see you're making progress on this, but the patch looks
> suspicious to me. There shouldn't be anything ia64 specific in this
> code. It would be good to understand why the keyboard interrupt gets
> lost.
I agree, this patch is most likely just masking the real problem.
Richard
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (12 preceding siblings ...)
2001-09-19 22:27 ` Richard Hirst
@ 2001-09-20 22:56 ` Richard Hirst
2001-09-21 15:44 ` David Mosberger
14 siblings, 0 replies; 16+ messages in thread
From: Richard Hirst @ 2001-09-20 22:56 UTC (permalink / raw)
To: linux-ia64
On Wed, Sep 19, 2001 at 02:49:28PM -0700, David Mosberger wrote:
> Glad to see you're making progress on this, but the patch looks
> suspicious to me. There shouldn't be anything ia64 specific in this
> code. It would be good to understand why the keyboard interrupt gets
> lost.
Turns out the interrupt isn't lost, it is just held off until the
previous one has been completely serviced...
User hits CapsLock
CPU enters arch/ia64/kernel/irq_ia64.c:ia64_handle_irq()
which calls arch/ia64/kernel/irq.c:do_IRQ()
which calls the kb interrupt handler
and then do_IRQ() sees local_softirq_pending() and calls do_softirq()
that will run the keyboard tasklet, which calls
drivers/char/pc_keyb.c:pckbd_leds()
pckbd_leds() calls send_data() which expects the kb to generate interrupts
those interrupts can't happen because we havn't yet returned to
ia64_handle_irq() and called ia64_eoi() for the last one
eventually send_data() gives up and returns, we unwind and call ia64_eio()
and the keyboard interrupts.
I'm guessing that ia64_eoi() is needed before the next k/b int can
happen, but it sounds logical.
The answer _might_ be to move the call to do_softirq() from the end of
do_IRQ() to the end of ia64_handle_irq(). I've tried that, and it works,
but I don't claim to know the ia64 interrupt h/w or s/w, so there may
be nasty side-effects. Calling do_softirq() only once all pending ints
have been completely serviced sounds more correct to me anyway.
Richard
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [Linux-ia64] AT Keyboard not present?
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
` (13 preceding siblings ...)
2001-09-20 22:56 ` Richard Hirst
@ 2001-09-21 15:44 ` David Mosberger
14 siblings, 0 replies; 16+ messages in thread
From: David Mosberger @ 2001-09-21 15:44 UTC (permalink / raw)
To: linux-ia64
Hi Richard,
Some good hunting!
>>>>> On Thu, 20 Sep 2001 23:56:25 +0100, Richard Hirst <rhirst@linuxcare.com> said:
Richard> Turns out the interrupt isn't lost, it is just held off
Richard> until the previous one has been completely serviced...
Richard> User hits CapsLock
Richard> CPU enters arch/ia64/kernel/irq_ia64.c:ia64_handle_irq()
Richard> which calls arch/ia64/kernel/irq.c:do_IRQ()
Richard> which calls the kb interrupt handler
Richard> and then do_IRQ() sees local_softirq_pending() and calls
Richard> do_softirq()
Richard> that will run the keyboard tasklet, which calls
Richard> drivers/char/pc_keyb.c:pckbd_leds()
Richard> pckbd_leds() calls send_data() which expects the kb to
Richard> generate interrupts
Richard> those interrupts can't happen because we havn't yet
Richard> returned to ia64_handle_irq() and called ia64_eoi() for the
Richard> last one
Richard> eventually send_data() gives up and returns, we unwind and
Richard> call ia64_eio() and the keyboard interrupts.
Ah, yes, this makes tons of sense.
Richard> I'm guessing that ia64_eoi() is needed before the next k/b
Richard> int can happen, but it sounds logical.
Yes, that's what we used to do until the softirq-rewrite happened in
2.4.7.
Richard> The answer _might_ be to move the call to do_softirq() from
Richard> the end of do_IRQ() to the end of ia64_handle_irq(). I've
Richard> tried that, and it works, but I don't claim to know the
Richard> ia64 interrupt h/w or s/w, so there may be nasty
Richard> side-effects. Calling do_softirq() only once all pending
Richard> ints have been completely serviced sounds more correct to
Richard> me anyway.
That's probably the best thing to do for now. For 2.5, the idea is to
have a single, platform-independent irq.c and for this reason, I'm
trying to keep the ia64 version as close to the x86 version as
possible. But this obviously is something that needs to be changed.
Thanks,
--david
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2001-09-21 15:44 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-09-07 17:49 [Linux-ia64] AT Keyboard not present? KOCHI Takayoshi
2001-09-07 19:05 ` Krishnakumar B
2001-09-07 19:36 ` Johannes Erdfelt
2001-09-07 19:55 ` Krishnakumar B
2001-09-07 20:02 ` Johannes Erdfelt
2001-09-07 20:09 ` Khalid Aziz
2001-09-07 20:12 ` KOCHI Takayoshi
2001-09-10 8:46 ` Martin Wilck
2001-09-10 21:43 ` Michael Madore
2001-09-10 22:10 ` Luck, Tony
2001-09-10 23:28 ` David Mosberger
2001-09-19 13:35 ` Richard Hirst
2001-09-19 21:49 ` David Mosberger
2001-09-19 22:27 ` Richard Hirst
2001-09-20 22:56 ` Richard Hirst
2001-09-21 15:44 ` David Mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox