c207f3a431
This branch takes the PowerPC irq_host infrastructure (reverse mapping from Linux IRQ numbers to hardware irq numbering), generalizes it, renames it to irq_domain, and makes it available to all architectures. Originally the plan has been to create an all-new irq_domain implementation which addresses some of the powerpc shortcomings such as not handling 1:1 mappings well, but doing that proved to be far more difficult and invasive than generalizing the working code and refactoring it in-place. So, this branch rips out the 'new' irq_domain and replaces it with the modified powerpc version (in a fully bisectable way of course). It converts all users over to the new API and makes irq_domain selectable on any architecture. No architecture is forced to enable irq_domain, but the infrastructure is required for doing OpenFirmware style irq translations. It will even work on SPARC even though SPARC has it's own mechanism for translating irqs at boot time. MIPS, microblaze, embedded x86 and c6x are converted too. The resulting irq_domain code is probably still too verbose and can be optimized more, but that can be done incrementally and is a task for follow-on patches. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQIcBAABAgAGBQJPZ1yiAAoJEEFnBt12D9kB4yIQAJvCfTPL65sCYVD6i9RnVHtR ahwddtd0AtT+UYLU8Xg2fZgVi6cmupDGnqkBixzZD3xxSTERqm7Snqa0ugklfeAi B6Zqf/K17H5hJNaoQ3fkNauow8m7ZYOeEH2vVUvkb3woWS9Wm7OGd+BvcIBgYSGe Aaoumhu7kDxFkii0qz3x/+kvsb6DRp2HtSPWj+APL/kNjdiO4JBOihtcc/lX6d47 bsZLiEMzHUFV4ApJNwqmfDnf54oMrHmrRJxgQHIMjeJC5or9I3Do8wDGe/aTF5xO 5GVpxCQsTlJMjTBWlAFtpTwCJB6y76EHQrHc7WzLlq8OJSsxApOke8M0BzXFrfMy CU7UUpTvNZTLpZibLCEQKemv1+oNOkfFylsHxfek2MCqx0W6W4FHEGV3qE/GtgV9 +vurA9hNNp7VM0FGRGigcUr3woYdHLdEVQrlnL7Z9AgBu1W44MZLaai7iRVZOeCT ZQ9++v2PJJ8vHT8kdkgTdiRpnEhmv84MX/GBT7ilWFEMIVeT5zhGkIBojzNgyzGc 7cvermmM0P8h+unkDgmzmSbDxo0PboqVKeoO71AOBhA6MmR9iom7XkuNdHhoOwy2 4A5xT1srbhJDbuv15BBREBV24TywpZ4a1+4nwQT4L1fXe+HfCxeEWexGcKQMRcIt dAelOHTQ+ZGkOKvXeW05 =ruGA -----END PGP SIGNATURE----- Merge tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6 Pull irq_domain support for all architectures from Grant Likely: "Generialize powerpc's irq_host as irq_domain This branch takes the PowerPC irq_host infrastructure (reverse mapping from Linux IRQ numbers to hardware irq numbering), generalizes it, renames it to irq_domain, and makes it available to all architectures. Originally the plan has been to create an all-new irq_domain implementation which addresses some of the powerpc shortcomings such as not handling 1:1 mappings well, but doing that proved to be far more difficult and invasive than generalizing the working code and refactoring it in-place. So, this branch rips out the 'new' irq_domain and replaces it with the modified powerpc version (in a fully bisectable way of course). It converts all users over to the new API and makes irq_domain selectable on any architecture. No architecture is forced to enable irq_domain, but the infrastructure is required for doing OpenFirmware style irq translations. It will even work on SPARC even though SPARC has it's own mechanism for translating irqs at boot time. MIPS, microblaze, embedded x86 and c6x are converted too. The resulting irq_domain code is probably still too verbose and can be optimized more, but that can be done incrementally and is a task for follow-on patches." * tag 'irqdomain-for-linus' of git://git.secretlab.ca/git/linux-2.6: (31 commits) dt: fix twl4030 for non-dt compile on x86 mfd: twl-core: Add IRQ_DOMAIN dependency devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc) irq_domain: Centralize definition of irq_dispose_mapping() irq_domain/mips: Allow irq_domain on MIPS irq_domain/x86: Convert x86 (embedded) to use common irq_domain ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c irq_domain/microblaze: Convert microblaze to use irq_domains irq_domain/powerpc: Replace custom xlate functions with library functions irq_domain/powerpc: constify irq_domain_ops irq_domain/c6x: Use library of xlate functions irq_domain/c6x: constify irq_domain structures irq_domain/c6x: Convert c6x to use generic irq_domain support. irq_domain: constify irq_domain_ops irq_domain: Create common xlate functions that device drivers can use irq_domain: Remove irq_domain_add_simple() irq_domain: Remove 'new' irq_domain in favour of the ppc one mfd: twl-core.c: Fix the number of interrupts managed by twl4030 of/address: add empty static inlines for !CONFIG_OF irq_domain: Add support for base irq and hwirq in legacy mappings ... |
||
---|---|---|
.. | ||
iseries | ||
8xx_immap.h | ||
abs_addr.h | ||
agp.h | ||
asm-compat.h | ||
asm-offsets.h | ||
async_tx.h | ||
atomic.h | ||
auxvec.h | ||
backlight.h | ||
bitops.h | ||
bitsperlong.h | ||
bootx.h | ||
btext.h | ||
bug.h | ||
bugs.h | ||
byteorder.h | ||
cache.h | ||
cacheflush.h | ||
cell-pmu.h | ||
cell-regs.h | ||
checksum.h | ||
clk_interface.h | ||
code-patching.h | ||
compat.h | ||
cpm1.h | ||
cpm2.h | ||
cpm.h | ||
cputable.h | ||
cputhreads.h | ||
cputime.h | ||
current.h | ||
dbdma.h | ||
dbell.h | ||
dcr-generic.h | ||
dcr-mmio.h | ||
dcr-native.h | ||
dcr-regs.h | ||
dcr.h | ||
delay.h | ||
device.h | ||
disassemble.h | ||
div64.h | ||
dma-mapping.h | ||
dma.h | ||
edac.h | ||
eeh_event.h | ||
eeh.h | ||
ehv_pic.h | ||
elf.h | ||
emergency-restart.h | ||
emulated_ops.h | ||
epapr_hcalls.h | ||
errno.h | ||
exception-64e.h | ||
exception-64s.h | ||
fb.h | ||
fcntl.h | ||
feature-fixups.h | ||
firmware.h | ||
fixmap.h | ||
floppy.h | ||
fs_pd.h | ||
fsl_85xx_cache_sram.h | ||
fsl_gtm.h | ||
fsl_guts.h | ||
fsl_hcalls.h | ||
fsl_ifc.h | ||
fsl_lbc.h | ||
ftrace.h | ||
futex.h | ||
gpio.h | ||
grackle.h | ||
hardirq.h | ||
heathrow.h | ||
highmem.h | ||
hugetlb.h | ||
hvcall.h | ||
hvconsole.h | ||
hvcserver.h | ||
hvsi.h | ||
hw_breakpoint.h | ||
hw_irq.h | ||
hydra.h | ||
i8259.h | ||
ibmebus.h | ||
ide.h | ||
immap_cpm2.h | ||
immap_qe.h | ||
io_event_irq.h | ||
io-defs.h | ||
io-workarounds.h | ||
io.h | ||
ioctl.h | ||
ioctls.h | ||
iommu.h | ||
ipcbuf.h | ||
ipic.h | ||
irq_regs.h | ||
irq.h | ||
irqflags.h | ||
jump_label.h | ||
Kbuild | ||
kdebug.h | ||
kdump.h | ||
kexec.h | ||
keylargo.h | ||
kgdb.h | ||
kmap_types.h | ||
kprobes.h | ||
kvm_44x.h | ||
kvm_asm.h | ||
kvm_book3s_32.h | ||
kvm_book3s_64.h | ||
kvm_book3s_asm.h | ||
kvm_book3s.h | ||
kvm_booke.h | ||
kvm_e500.h | ||
kvm_fpu.h | ||
kvm_host.h | ||
kvm_para.h | ||
kvm_ppc.h | ||
kvm.h | ||
libata-portmap.h | ||
linkage.h | ||
local64.h | ||
local.h | ||
lppaca.h | ||
lv1call.h | ||
machdep.h | ||
macio.h | ||
mc146818rtc.h | ||
mediabay.h | ||
mman.h | ||
mmu_context.h | ||
mmu-8xx.h | ||
mmu-40x.h | ||
mmu-44x.h | ||
mmu-book3e.h | ||
mmu-hash32.h | ||
mmu-hash64.h | ||
mmu.h | ||
mmzone.h | ||
module.h | ||
mpc5xxx.h | ||
mpc6xx.h | ||
mpc8xx.h | ||
mpc52xx_psc.h | ||
mpc52xx.h | ||
mpc5121.h | ||
mpc8260.h | ||
mpic.h | ||
msgbuf.h | ||
msi_bitmap.h | ||
mutex.h | ||
nvram.h | ||
ohare.h | ||
opal.h | ||
oprofile_impl.h | ||
paca.h | ||
page_32.h | ||
page_64.h | ||
page.h | ||
param.h | ||
parport.h | ||
pasemi_dma.h | ||
pci-bridge.h | ||
pci.h | ||
percpu.h | ||
perf_event_fsl_emb.h | ||
perf_event_server.h | ||
perf_event.h | ||
pgalloc-32.h | ||
pgalloc-64.h | ||
pgalloc.h | ||
pgtable-ppc32.h | ||
pgtable-ppc64-4k.h | ||
pgtable-ppc64-64k.h | ||
pgtable-ppc64.h | ||
pgtable.h | ||
phyp_dump.h | ||
pmac_feature.h | ||
pmac_low_i2c.h | ||
pmac_pfunc.h | ||
pmc.h | ||
pmi.h | ||
poll.h | ||
posix_types.h | ||
ppc4xx.h | ||
ppc_asm.h | ||
ppc-opcode.h | ||
ppc-pci.h | ||
processor.h | ||
prom.h | ||
ps3.h | ||
ps3av.h | ||
ps3fb.h | ||
ps3gpu.h | ||
ps3stor.h | ||
pSeries_reconfig.h | ||
pte-8xx.h | ||
pte-40x.h | ||
pte-44x.h | ||
pte-book3e.h | ||
pte-common.h | ||
pte-fsl-booke.h | ||
pte-hash32.h | ||
pte-hash64-4k.h | ||
pte-hash64-64k.h | ||
pte-hash64.h | ||
ptrace.h | ||
qe_ic.h | ||
qe.h | ||
reg_8xx.h | ||
reg_a2.h | ||
reg_booke.h | ||
reg_fsl_emb.h | ||
reg.h | ||
resource.h | ||
rheap.h | ||
rio.h | ||
rtas.h | ||
rtc.h | ||
scatterlist.h | ||
scom.h | ||
seccomp.h | ||
sections.h | ||
sembuf.h | ||
serial.h | ||
setjmp.h | ||
setup.h | ||
sfp-machine.h | ||
shmbuf.h | ||
shmparam.h | ||
sigcontext.h | ||
siginfo.h | ||
signal.h | ||
smp.h | ||
smu.h | ||
socket.h | ||
sockios.h | ||
sparsemem.h | ||
spinlock_types.h | ||
spinlock.h | ||
spu_csa.h | ||
spu_info.h | ||
spu_priv1.h | ||
spu.h | ||
sstep.h | ||
stat.h | ||
statfs.h | ||
string.h | ||
swab.h | ||
swiotlb.h | ||
synch.h | ||
syscall.h | ||
syscalls.h | ||
systbl.h | ||
system.h | ||
tce.h | ||
termbits.h | ||
termios.h | ||
thread_info.h | ||
time.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
topology.h | ||
trace.h | ||
tsi108_irq.h | ||
tsi108_pci.h | ||
tsi108.h | ||
types.h | ||
uaccess.h | ||
ucc_fast.h | ||
ucc_slow.h | ||
ucc.h | ||
ucontext.h | ||
udbg.h | ||
uic.h | ||
unaligned.h | ||
uninorth.h | ||
unistd.h | ||
user.h | ||
vdso_datapage.h | ||
vdso.h | ||
vga.h | ||
vio.h | ||
wsp.h | ||
xics.h | ||
xilinx_intc.h | ||
xilinx_pci.h | ||
xmon.h | ||
xor.h |