Steve,
These might be caused by posted-write buffers on a PCI bridge as well.
Your service routine could look something like this:
status = rtl_read(interrupt status) & interrupt configuration
if (status == 0)
return unclaimed
else {
rtl_write(status)
rtl_read(something)
rtl_work()
return claimed
}
The rtl_read(something) is to ensure that all data is delivered to
host memory before rtl_work() processes it. Without the "read
something", data can be queued (posted) in an intermediate bridge. It
could be that your device interrupts again when it sees that not all
descriptors are taken by the host after acknowledgement.
Note that I don't have any authority on this subject. It's just that
I've been reading the Shanley PCI book (p256 if you have it) on this
topic recently.
Joost
On Oct 10, 2008, at 7:17 AM, Steven Stallion wrote:
> All,
>
> I am noticing that on occasion the RTL8029AS seems to fire an
> interrupt
> which is not reflected in the interrupt status register which causes a
> spurious interrupt warning by pcisch.
>
> Any ideas?
>
> (Yes, I am clearing the interrupt before returning DDI_INTR_CLAIMED)
>
> --
> Yet magic and hierarchy
> arise from the same source,
> and this source has a null pointer.
>
> Reference the NULL within NULL,
> it is the gateway to all wizardry.
> _______________________________________________
> driver-discuss mailing list
> [email protected]
> http://mail.opensolaris.org/mailman/listinfo/driver-discuss
--
Joost Mulders + email: [EMAIL PROTECTED]
Technical Specialist + phone: +31-33-45-15701
Client Solutions + fax: +31-33-45-15734
Sun Microsystems + mobile: +31-6-5198-7268
-= Anything not done right, has to be done again =-
_______________________________________________
driver-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/driver-discuss