Re: RTC Chip and IRQ8 on 2.6.9

From: Randy.Dunlap
Date: Sat Nov 13 2004 - 23:41:18 EST


linux-os wrote:

I must use the RTC and IRQ8 in a driver being ported from
2.4.20 to 2.6.9. When I attempt request_irq(8,...), it
returns -EBUSY. I have disabled everything in .config
that has "RTC" in it.

The RTC interrupt is used to precisely time the sequencing
of a precision A/D converter. It is mandatory that I use
it because the precise interval is essential for its
IIR filter that produces 20 bits of resolution from a
16 bit A/D.

CPU0
0: 60563767 IO-APIC-edge timer
1: 57096 IO-APIC-edge i8042
8: 1 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
12: 66 IO-APIC-edge i8042
14: 112322 IO-APIC-edge ide0
16: 0 IO-APIC-level uhci_hcd, uhci_hcd
18: 640 IO-APIC-level libata, uhci_hcd, Analogic Corp DLB
19: 0 IO-APIC-level uhci_hcd
20: 4894484 IO-APIC-level eth0
21: 110543 IO-APIC-level aic7xxx
23: 0 IO-APIC-level ehci_hcd
NMI: 0 LOC: 60565403 ERR: 0
MIS: 0

This stuff works fine in 2.4.22 and, in fact, I'm the guy
that added the global rtc_lock so that this very driver
could run without interfering with anybody. Now, some code,
somewhere (not in a module), has allocated the interrupt
and generated exactly 1 interrupt. The kernel won't let
me use that interrupt!

How do I undo this so I can use my hardware on my machine?

I happen to be running a 2.6.9-rc1 kernel right now, with
an IO APIC (P4 UP), and no RTC support built into it,
and /proc/interrupts show IRQ 8 empty/unassigned:

CPU0
0: 777037582 IO-APIC-edge timer
1: 185323 IO-APIC-edge i8042
7: 0 IO-APIC-edge parport0
9: 0 IO-APIC-level acpi
12: 2838473 IO-APIC-edge i8042
14: 1197859 IO-APIC-edge ide0
15: 42 IO-APIC-edge ide1
17: 49 IO-APIC-level aic7xxx, ohci_hcd
19: 0 IO-APIC-level uhci_hcd
21: 197 IO-APIC-level ohci1394, ohci_hcd, ohci_hcd, ohci_hcd, ohci_hc
d, ohci_hcd
22: 832350 IO-APIC-level ehci_hcd, eth0
23: 16387 IO-APIC-level es1371, uhci_hcd
NMI: 0
LOC: 776994543
ERR: 0
MIS: 0


Perhaps your .config and a simple test case would help.

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