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?