Joerg Dorchain (firstname.lastname@example.org)
Mon, 31 Aug 1998 12:26:10 +0200 (MET DST)
> No. _In_Linux_ 2.1.119 is the arch specific irq code that has to know
> everything about the irq and to ack the irq when it will happen and _then_
> to recall the irq handler. The device driver has not to know how to ack an
> irq to the irq controller.
Wrong assumption. There is no generic irq-acknoledge hardware. You an a
register where you can look up the irq-level, and then look into the docs
to see what hardware can set it. In case of plugin cards, this tells you
only that the irq came from the expansion bus. You can mask this irq
level out, but then you disable _all_ devices that use that level.
The arch specific irq codeknows how to prevent interrupt of the same
level as the current by masking it out, but not how to acknowledge every
possible expansion card.
To come back to the irq-controller: There is only a one way connection
between expansion cards and the rest of the irq-logic. Expasnion cards
can raise an interrupt. The acknowedgement has to be done by software for
the specific card, because there are no hardware signals back to archieve
> NoNo. I could have understood something. Are you doing a performance
No. That would only be a side effect. I am just trying to explain some
fundamentally differences between amiga(m68k) and PC hardware.
> You have many irq shared on the same "level" (you called it
> so). You don' t want to run all the shared irqs. If so this way to
> optimize things moving the ack to device drivers is very more ugly that
> leaving the current parport_share code as now. You should resolve this
> optimization at arch specific code.
Sorry, "levels" are motorola idioms. If an interrupt of a specific level
is handled, only higher level interrupt can happen, the rest of deferred
automatically by the cpu until the current handler has finished.
We simply _have_ shared irqs. (I don't want to start a holy war about
pros and cons of that, I just want the clear that as a fact.)
My understanding of the arch-specific irq stuff is that is handles
everything concerning the irq model of the specific architecture.
A plug-in card is not absolutely architecture specific. Otherwis it would
need a special driver for it. i.e. there exist a special adapter for the
amiga-zorro bus to allow you to use ISA cards. For the NE2000 network
cards the driver already has benn slightly adapted to work (endian
problem, another ugly story).
> Could you post or point code instead of only words? At least the code is
> written in C and not in English and so I should understand it better ;-).
Well, ok. You might look into driver/scsi/a3000.c and wd33c93.c. Also
drivers/m68k_serial is an example. Current printer drivers are in
driver/char/lp_m68k.c, lp_intern.c and lp_mfc.c.
Current m68k-kernels-source is at
sunsite.auc.dk:/local/os/linux/680x0/v2.1. Thetar.gz is full source,
..diff.gz is a diff between full sources, and -native.diff.gz is the
difference to the corresponding "official" version. For the really
bleeding edge, listen to patches on the linux-m68k mailing list.
P.s.:For 2.1.119, the new parport_amiga.c did not go in yet. Patch
> Andrea[s] Arcangeli
-- To unsubscribe, send mail to: email@example.com --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2.0b3 on Wed 30 Dec 1998 - 10:18:11 EST