From: freeman.zhang1992@gmail.com (Freeman Zhang)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Writing driver for a net device which does not support interrupt
Date: Tue, 24 Mar 2015 09:24:42 +0800 [thread overview]
Message-ID: <5510BCDA.2060409@gmail.com> (raw)
In-Reply-To: <53058.1427125905@turing-police.cc.vt.edu>
Hi Valdis,
Thanks for your warning. I feel like I believe in my group and those
engineers. In fact, implementing interrupts is part of the plan, but,
yes, the prototype is really buggy.... However they are trying hard to
fix it, and I should not stand by just to watch, waiting for the
deadline, should I?
Anyway, this is a serious project. This work need to be done. And I just
figured out something that might solve the current problem and might be
easily modifid when hardware interrupt is available. I think I could use
soft interrupt to active NAPI polling, so that I can use existing
infrastructure, as what 'snull' does. What do you think?
Thanks again!
Freeman
-------- Original Message --------
> On Mon, 23 Mar 2015 18:51:51 +0800, Freeman Zhang said:
>> 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.
>
> As a realistic datapoint - if it still doesn't support interrupts, the *rest*
> of it is probably still so buggy that trying to write a driver isn't worth
> the effort.
>
> It's doable if you are working with a group of talented and experienced
> engineers - but if the hardware is also being done as a final project,
> you're in for naught but misery.
>
> You *could* do something like this:
>
> while (waiting) {
> status = read_status_bits(your_device);
> if (status & DATA_AVAIL_MASK) break;
> msleep(100);
> }
>
> But having seen enough student hardware design projects in my life, I estimate
> that if it still can't signal interrupts, the status bits probably aren't valid
> either. (Think about it - a bog-simple implementation of interrupts would be
> to just feed a transition-high on the appropriate status bit to the interrupt
> pin, and use a read from the chip to clear the pin).
>
> Good luck - I suspect you're going to need it....
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150324/db9d6838/attachment.bin
next prev parent reply other threads:[~2015-03-24 1:24 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-23 10:51 Writing driver for a net device which does not support interrupt Freeman Zhang
2015-03-23 15:51 ` Valdis.Kletnieks at vt.edu
2015-03-24 1:24 ` Freeman Zhang [this message]
2015-03-23 16:59 ` phil
2015-03-24 1:34 ` Freeman Zhang
2015-03-24 16:52 ` Daniel Baluta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5510BCDA.2060409@gmail.com \
--to=freeman.zhang1992@gmail.com \
--cc=kernelnewbies@lists.kernelnewbies.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).