OpenPIC_NumInitSenses
Paul Mackerras
paulus at samba.org
Thu Jan 24 23:13:26 EST 2002
Who was it that wanted this horrible hack in open_pic.c?
/* Needed because of the way we overload EPIC on a standard
* Open PIC structure.
*/
if (OpenPIC_NumInitSenses > NumSources)
NumSources = OpenPIC_NumInitSenses;
I am about to add an openpic_set_sources function which will let us
handle the distributed openpic in IBM pSeries machines more cleanly
and also allow us to remove this hack.
openpic_set_sources takes three arguments: a range of openpic IRQ
numbers (first irq and number of irqs) and a pointer to the ioremapped
interrupt source registers. If the pointer is NULL it is taken to
mean that the irqs use the standard openpic interrupt source
registers. openpic_set_sources also sets NumSources to first_irq +
num_irqs if that value is larger than NumSources, and if NumSources is
set by openpic_set_sources, then openpic_init doesn't use the value
from the openpic registers. (Thus openpic_set_sources must be called
*before* openpic_init, but after you have set OpenPIC_Addr.)
Thus if you want to say how many interrupt sources there are, you will
be able to do that with openpic_set_sources(0, num_sources, NULL).
If you want to say that there are 16 sources in the standard locations
plus another 16 at some other location, you could do
openpic_set_sources(0, 16, NULL);
openpic_set_sources(16, 16, ioremap(isr_base, 16 * 32));
(Actually maybe I should let openpic_set_sources do the ioremap.)
Comments?
Paul.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
More information about the Linuxppc-dev
mailing list