Writing driver for a net device which does not support interrupt

phil phil at pjd.me.uk
Mon Mar 23 12:59:00 EDT 2015



On 23/03/15 10:51, Freeman Zhang wrote:
> I'm writing a net device driver for my final project in college. But the
> half-finished device doesn't support interrupt yet(those hardware guys...)
>
> So I'm wondering if there is some way to poll the device for its status
> and events.

You should take a look at kernel timers, this is a rather old resource 
and was just the first hit in a google search but it should still be 
relevant.

http://www.ibm.com/developerworks/library/l-timers-list/

Kernel timers will sort of prepare you for interrupts i.e. a kernel 
timer will fire every $time_value and you can put your code which should 
normally run during an interrupt in the callback code.

I've used kernel timers to debug interrupts on our hardware devices, 
i.e. there have been times when the hardware has stopped raising 
interrupts and I've put timers in to cover this. For example a new 
firmware might work fine, but have completely broken interrupts or not 
fire interrupts often enough and timers can prove to the hardware guys 
that it's interrupts at fault ;)

hint: you might also want to look at tasklets and have your timer 
callback just call a tasklet.

Phil



More information about the Kernelnewbies mailing list