Subject: [PATCH and RFC] Remove request_8xxirq

From: Tom Rini <[email-masked]>
Date: Thu, 20 Jun 2002 13:34:55 -0700

The following two patches remove request_8xxirq and redesign how we
handle interrupts.  There's patches both against 2.5 (For inclusion
first, mainly for comment tho) and for 2.4 (which has been tested but is
intended for inclusion much later, probably 2.4.21 time-frame).

The new interrupt handling scheme allows all 8xx interrupt handlers to be
installed via the standard request_irq() function.  This required a
"flattened" representation of the interrupt vectors from all interrupt
controllers so that we can uniquely identify any interrupt source with a
single integer.  The interrupt vector numbers used by request_irq() are:

        request_irq vector      interrupt source
        ------------------      ----------------
        0 - 15                  SIU interrupt vectors 0 to 15
        16 - 47                 CPM interrupt vectors 0 to 31
        48 - 63                 8259 interrupt vectors 0 to 15 (MBX only)

In the 2.4 version of this patch, cpm_install_handler and request_8xxirq
still work as expected.   The 2.5 version removes both of bits of
backwards compatibility (since there will no doubt be numerous other
changes for drivers to take into consideration for 2.4.xx vs 2.6.xx).

The first benefit of all of these changes is that it gets PCI working on
MBX (and any other 8xx system with PCI).  The second benefit is that it
lets all of the otherwise properly written PCMCIA drivers just work
(such as orinoco_cs) which would previously panic() on request_irq().

The bulk of this work was done by Andy Lowe and then moved up to current
kernels and expanded slightly by myself.

Comments?

--
Tom Rini (TR1265)
http://gate.crashing.org/~trini/