linux/arch/powerpc/sysdev
Michael Ellerman 7e302869e0 powerpc: Split-out common MSI bitmap logic into msi_bitmap.c
There are now two almost identical implementations of an MSI bitmap
allocator, one in mpic_msi.c and the other in fsl_msi.c.

Merge them together and put the result in msi_bitmap.c.  Some of the
MPIC bits will remain to provide a nicer interface for the MPIC users.

In the process we fix two buglets.  The first is that the allocation
routines, now msi_bitmap_alloc_hwirqs(), returned an unsigned result,
even though they use -1 to indicate allocation failure.  Although all
the callers were checking correctly, it is much better for the routine
to just return an int.  At least until someone wants > ~2 billion MSIs.

The second buglet is that the device tree reservation logic only
allowed power-of-two reservations.  AFAICT that didn't effect any
existing code but it's nicer if we can reserve arbitrary irqs from MSI
use.

We also add some selftests, which exposed the two buglets and now test
for them, as well as some basic sanity tests.  The tests are only built
when CONFIG_DEBUG_KERNEL=y.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2008-08-20 16:34:57 +10:00
..
bestcomm powerpc/mpc5200: fix compile warnings in bestcomm driver 2008-07-12 12:10:53 -06:00
qe_lib gpiolib: allow user-selection 2008-07-25 10:53:30 -07:00
6xx-suspend.S [POWERPC] Add 6xx-style HID0_SLEEP support. 2008-05-16 23:22:28 +10:00
Kconfig powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
Makefile powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
axonram.c powerpc/axonram: Enable partitioning of the Axons DDR2 DIMMs 2008-07-22 10:39:31 +10:00
cpm1.c powerpc: implement GPIO LIB API on CPM1 Freescale SoC. 2008-07-28 07:42:09 -05:00
cpm2.c cpm2: Rework baud rate generators configuration to support external clocks. 2008-07-28 08:47:45 -05:00
cpm2_pic.c powerpc: Fix irq_alloc_host() reference counting and callers 2008-06-09 13:51:16 +10:00
cpm2_pic.h [POWERPC] cpm2: CPM2 interrupt controller fix 2007-02-07 14:03:20 +11:00
cpm_common.c cpm2: Implement GPIO LIB API on CPM2 Freescale SoC. 2008-07-28 07:40:48 -05:00
dart.h [POWERPC] Use 4kB iommu pages even on 64kB-page systems 2006-11-01 14:52:48 +11:00
dart_iommu.c powerpc/pseries: iommu enablement for CMO 2008-07-25 15:44:43 +10:00
dcr-low.S [POWERPC] Generic DCR infrastructure 2006-12-04 16:08:25 +11:00
dcr.c [POWERPC] 4xx: Fix compiler warning on DCR_NATIVE only builds 2008-05-29 07:06:56 -05:00
fsl_gtm.c powerpc/sysdev: implement FSL GTM support 2008-06-10 10:38:50 -05:00
fsl_lbc.c [POWERPC] fsl_lbc: implement few UPM routines 2008-04-17 01:01:38 -05:00
fsl_msi.c powerpc: fsl_msi doesn't need it's own of_node 2008-08-20 16:34:57 +10:00
fsl_msi.h powerpc: fsl_msi doesn't need it's own of_node 2008-08-20 16:34:57 +10:00
fsl_pci.c powerpc: Move mpc83xx_add_bridge to fsl_pci.c 2008-07-16 17:57:35 -05:00
fsl_pci.h powerpc: Move mpc83xx_add_bridge to fsl_pci.c 2008-07-16 17:57:35 -05:00
fsl_rio.c [RAPIDIO] fix current kernel-doc notation 2008-05-01 23:01:54 -05:00
fsl_soc.c gianfar: Add magic packet and suspend/resume support. 2008-07-16 17:57:47 -05:00
fsl_soc.h powerpc/mpc83xx: Power Management support 2008-07-16 17:57:30 -05:00
grackle.c [POWERPC] pci32: Add flags modifying the PCI code behaviour 2007-12-20 16:18:07 +11:00
i8259.c powerpc: Fix irq_alloc_host() reference counting and callers 2008-06-09 13:51:16 +10:00
indirect_pci.c powerpc/4xx: Workaround for PPC440EPx/GRx PCI_28 Errata 2008-06-17 19:01:38 -04:00
ipic.c powerpc/mpc83xx: Power Management support 2008-07-16 17:57:30 -05:00
ipic.h [POWERPC] ipic: ack only for edge interrupts 2007-12-12 01:53:07 -06:00
micropatch.c [POWERPC] CPM: Rename commproc to cpm1 and cpm2_common.c to cpm2.c 2008-01-28 08:31:05 -06:00
mmio_nvram.c [POWERPC] arch/powerpc/: Spelling fixes 2007-12-20 16:15:51 +11:00
mpc8xx_pic.c [POWERPC] arch/powerpc/sysdev: Add missing of_node_put 2008-02-06 22:06:59 +11:00
mpc8xx_pic.h [POWERPC] 8xx: mpc885ads pcmcia support 2007-07-10 00:33:51 -05:00
mpic.c Merge commit 'origin/master' 2008-07-16 11:07:59 +10:00
mpic.h [POWERPC] pasemi: Implement NMI support 2007-12-28 09:22:24 -06:00
mpic_msi.c [POWERPC] sysdev/mpic_msi.c should include sysdev/mpic.h 2008-05-14 22:31:50 +10:00
mpic_pasemi_msi.c [POWERPC] mpic_pasemi_msi: Failed allocation unnoticed 2008-05-14 22:31:20 +10:00
mpic_u3msi.c [POWERPC] mpic_u3msi: Failed allocation unnoticed 2008-05-14 22:31:25 +10:00
msi_bitmap.c powerpc: Split-out common MSI bitmap logic into msi_bitmap.c 2008-08-20 16:34:57 +10:00
mv64x60.h [POWERPC] Add Marvell mv64x60 udbg putc/getc functions 2007-09-22 14:49:21 +10:00
mv64x60_dev.c [POWERPC] Create of_buses for MV64x60 devices 2008-05-14 22:31:41 +10:00
mv64x60_pci.c [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
mv64x60_pic.c [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
mv64x60_udbg.c [POWERPC] Fix mv64x60 early console code to use cell-index property 2008-04-24 20:57:34 +10:00
of_rtc.c [POWERPC] Enable RTC for Ebony and Walnut (v2) 2008-01-25 07:07:26 -06:00
pmi.c [POWERPC] Clean out asm/of_{platform, device}.h from sysdev/ 2007-12-06 14:44:30 +11:00
ppc4xx_pci.c powerpc/4xx: Workaround for PPC440EPx/GRx PCI_28 Errata 2008-06-17 19:01:38 -04:00
ppc4xx_pci.h [POWERPC] 4xx: Add 460EX PCIe support to 4xx pci driver 2008-03-26 07:19:16 -05:00
ppc4xx_soc.c [POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c 2008-04-02 20:44:56 -05:00
rtc_cmos_setup.c powerpc: rtc_cmos_setup: assign interrupts only if there is i8259 PIC 2008-07-28 08:47:38 -05:00
tsi108_dev.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
tsi108_pci.c powerpc: Fix irq_alloc_host() reference counting and callers 2008-06-09 13:51:16 +10:00
uic.c powerpc: Fix irq_alloc_host() reference counting and callers 2008-06-09 13:51:16 +10:00
xilinx_intc.c [POWERPC] Xilinx: Fix compile warnings 2008-05-01 23:09:42 -05:00