Updated: 10/2/04; 11:45:28 AM.
cremes' blog
An online journal covering my experiences with I/OKit, CoreAudio and OpenDarwin.
        

Tuesday, February 24, 2004

Had successful tests with the 3 main cards I targeted with the driver: ADMtek 985, PNIC, and DEC 21143.

However, had some trouble when the driver loaded to run more than one of these at a time. After some investigation I narrowed it down to a pretty simple call in my _stopAdapter method:

if ( workLoop) workLoop->disableAllInterrupts();

This call was disabling the delivery of *all* interrupts to multiple cards. This behavior confuses me since they all have different IOPCIDevice providers and I think they have different interrupt lines. Apparently I was incorrect on that second point. Removing all calls to disable interrupts has cured the problem.

I'm okay with this change. The IOFilterInterruptEventSource running in the driver will process all interrupts and decide if a secondary interrupt should be scheduled on the workloop. If a given interface is disabled, the filter will be smart enough to throw away that event.

I think I'm done now. Time to put the final packages together, import the sources into a new project at opendarwin.org, and call it a day. I'm due a break!

9:10:03 PM    comment []



© Copyright 2004 Chuck Remes.
 
February 2004
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29            
Jan   Mar


My Programming Project Home Pages:

Helpful Radio Links:

Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.