RTL Sharing IRQ with linux
"Ding Guijin" <[email protected]>
| Newsgroups | gmane.linux.real-time.rtlinux.general |
|---|---|
| Message-ID | <!~!UENERkVCMDkAAQACAAAAAAAAAAAAAAAAABgAAAAAAAAAdzL5RChA5EGWPKmISqvvp8KAAAAQAAAAflW8/[email protected]> |
Hi,
I try to share IRQ between RTLinux interrupt handler and linux
device driver. But failed, who can explain it?
My env:
Intel Celeron 2.4, DDR 512M, HD 40G
linux 2.2.18, rtlinux-3.0
Debian 3.0
My PCI device will generate a interrupt 11(Maybe BIOS assign).
in my host the USB controller and RTL8139 controller sharing the
interrupt 11.
The following is my method and some pseudo code:
intr_handler()
{
if(is_my_device_irq()) {
//do something
rtl_enable_hard_irq();
}
rtl_pend_global_irq();
}
module_init()
{
rtl_request_gloabl_irq(intr, intr_handler);
rtl_hard_enable_irq(intr);
}
module_cleanup()
{
//rtl_hard_disable_irq(intr);
rtl_free_global_irq(intr);
}
the problem:
insmod rt module, the general linux intr can work
rmmod rt module, the system will die
but before rtl_free_global_irq(intr); insert
rtl_disable_hard_irq(); the system is OK, but linux intr will be
blocked, the Ethernet card can not work.
Ding Guijin
Zinglabs Technologies
Addr:23rd Floor, Building 2,
ShangDi International High Tech Park, No.2 Information Road,
ShangDi, HaiDian District Beijing, China 100085
Tel: 8610-82893030 ext.515
Fax: 8610-82893190
http://www.zinglabs.com
_______________________________________________
Rtl mailing list
[email protected]
http://www2.fsmlabs.com/mailman/listinfo/rtl