lkml.org 
[lkml]   [2008]   [May]   [19]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 19 May 2008 18:10:32 +0200
FromClemens Ladisch <>
SubjectRe: [PATCH] x86: Get irq for hpet timer
Kevin Hao wrote:
> +	for (irq = find_first_bit(&cap, HPET_MAX_IRQ); irq < HPET_MAX_IRQ;
> +		irq = find_next_bit(&cap, HPET_MAX_IRQ, 1 + irq)) {
> +		if (request_irq(irq, hpet_interrupt, irq_flags,
> +				devp->hd_name, (void *)devp))

This spams my log with interrupt sharing violations.  As long as we do
not know that the interrupt slot is empty, we need IRQF_PROBE_SHARED
here.

Another problem: the interrupt controller doesn't get correctly
initialized for some interrupt line that didn't already have some
routing:
| $ cat /proc/interrupts
|            CPU0
|   0:         63   IO-APIC-edge      timer
|   1:         96   IO-APIC-edge      i8042
|   2:          0    XT-PIC-XT        hpet2
|   6:          3   IO-APIC-edge      floppy
|   7:          0   IO-APIC-edge      parport0
|   8:          3   IO-APIC-edge      rtc
|   9:          0   IO-APIC-fasteoi   acpi
| ...

Additionally, I vaguely remember that on X86, there is some funny stuff
going on with interrupt lines 0, 2 and 8 which means that the interrupt
number passed to request_irq() is not necessarily identical to the
hardware interrupt line.

I don't know which of these problems is responsible, or if I'm totally
wrong, but on my machine, interrupts from hpet2 do not arrive.


Regards,
Clemens


\
 
 \ /
  Last update: 2008-05-19 18:13    [from the cache]
©2003-2008