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/

Reply via email to