Hi,
I'm having an interrupt conflict between my USB controller
and a a custom PCI card. As far as I can tell, there is no
way to physically move either device to a different interrupt
line (and I don't really want to).
The PCI card driver is running under Real Time Linux. I tried
to pass the pending interrupt to the non real-time part of the
kernel using this code fragment within the real time ISR:
unsigned int handler(unsigned int irq_number, struct pt_regs *p) {
unsigned long tmp;
/* If the interrupt is not originating from card, schedule it for unreal-time
*/
if (!Bit(EPLD_New_Block,inl(RegBase+EPLD_Status))) {
rtl_global_pend_irq(cInt);
rtl_hard_enable_irq(cInt);
return 0;
}
...
Real Time ISR code
...
rtl_hard_enable_irq(cInt);
return 0;
}
Unfortunately, it still doesn't work. Every time the driver
for the USB controller is loaded (with the real time driver
running), the system just freezes and needs a reset. The same
thing happened without the mentioned code.
Do you have any idea what I'm missing here?
Thanks,
Iwo
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/