[POWERPC] pasemi: Implement MSI support
authorOlof Johansson <olof@lixom.net>
Wed, 12 Dec 2007 06:44:46 +0000 (17:44 +1100)
committerPaul Mackerras <paulus@samba.org>
Thu, 20 Dec 2007 05:15:23 +0000 (16:15 +1100)
commit38958dd9113c19cd7a927009ae585bd5aba3295e
treee4762aae2cfda535679bf3145f7553fddbdf6f6e
parent731e74c43d4e47daf327748128f1a3648e5d39a5
[POWERPC] pasemi: Implement MSI support

Implement MSI support for PA Semi PWRficient platforms. MSI is done
through a special range of sources on the openpic controller, and they're
unfortunately breaking the usual concepts of how sources are programmed:

* The source is calculated as 512 + the value written into the MSI
  register
* The vector for this source is added to the source and reported
  through IACK

This means that for simplicity, it makes much more sense to just set the
vector to 0 for the source, since that's really the vector we expect to
see from IACK.

Also, the affinity/priority registers will affect 16 sources at a
time. To avoid most (simple) users from being limited by this, allocate
16 sources per device but use only one. This means that there's a total
of 32 sources.

If we get usage scenarions that need more sources, the allocator should
probably be revised to take an alignment argument and size, not just do
natural alignment.

Finally, since I'm already touching the MPIC names on pasemi, rename
the base one from the somewhat odd " PAS-OPIC  " to "PASEMI-OPIC".

Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pasemi/setup.c
arch/powerpc/sysdev/Makefile
arch/powerpc/sysdev/mpic.c
arch/powerpc/sysdev/mpic.h
arch/powerpc/sysdev/mpic_pasemi_msi.c [new file with mode: 0644]