[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4831A678.5070208@ladisch.de>
Date: Mon, 19 May 2008 18:10:32 +0200
From: Clemens Ladisch <clemens@...isch.de>
To: Kevin Hao <kexin.hao@...driver.com>
CC: venkatesh.pallipadi@...el.com, bob.picco@...com, mingo@...hat.com,
tglx@...utronix.de, linux-kernel@...r.kernel.org
Subject: Re: [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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists