linux/drivers/irqchip
Marc Zyngier c848126734 irqchip: gicv3-its: Fix ITT allocation
When issuing a MAPD command, one of the parameters passed to the ITS
is the number of EventID bits used to index the per-device Interrupt
Translation Table (ITT). Crucially, this is the number of bits
*minus one*.

This has two consequences:
- The size of the ITT has to be a strict power of two, no matter
  how many different events the device is actually going to generate.
- It is impossible to express an ITT with a single entry, as you
  would have to tell the ITS to "use zero bit from the EventID",
  and that clashes with "minus one" above.

Fix this by allocating the ITT with the number of vectors rounded up
to the next power of two, with a minimum of two entries.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Yun Wu (Abel) <wuyun.wu@huawei.com>
Cc: Robert Richter <robert.richter@caviumnetworks.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-12-13 13:41:06 +01:00
..
exynos-combiner.c irqchip: exynos-combiner: Fix compilation error on ARM64 2014-09-03 11:56:39 +00:00
irq-armada-370-xp.c PCI/MSI: Rename mask/unmask_msi_irq treewide 2014-11-23 13:01:45 +01:00
irq-atmel-aic5.c Merge branch 'irqchip/atmel' into irqchip/core 2014-10-02 13:03:48 +00:00
irq-atmel-aic-common.c irqchip: atmel-aic: Implement RTC irq fixup 2014-07-17 13:38:54 +00:00
irq-atmel-aic-common.h irqchip: atmel-aic: Implement RTC irq fixup 2014-07-17 13:38:54 +00:00
irq-atmel-aic.c irqchip: atmel-aic: Convert to handle_domain_irq 2014-09-03 13:10:51 +00:00
irq-bcm2835.c irqchip: Remove asmlinkage from static functions 2014-03-12 13:00:41 +01:00
irq-bcm7120-l2.c irqchip: bcm7120-l2: Add Broadcom BCM7120-style Level 2 interrupt controller 2014-09-14 06:20:14 +00:00
irq-brcmstb-l2.c irqchip: brcmstb-l2: Level-2 interrupts are edge sensitive 2014-06-21 02:08:34 +00:00
irq-clps711x.c irqchip: clps711x: Convert to handle_domain_irq 2014-09-03 13:10:32 +00:00
irq-crossbar.c irqchip: crossbar: Off by one bugs in init 2014-08-18 11:48:11 +00:00
irq-dw-apb-ictl.c
irq-gic-common.c irqchip: gic: Replace hex numbers with defines. 2014-08-19 15:07:46 +00:00
irq-gic-common.h irqchip: gic: Move some bits of GICv2 to a library-type file 2014-07-08 21:49:14 +00:00
irq-gic-v2m.c irqchip: gic-v2m: Add support for ARM GICv2m MSI(-X) doorbell 2014-11-26 15:55:18 +00:00
irq-gic-v3-its.c irqchip: gicv3-its: Fix ITT allocation 2014-12-13 13:41:06 +01:00
irq-gic-v3.c irqchip: GICv3: ITS: plug ITS init into main GICv3 code 2014-11-26 15:55:15 +00:00
irq-gic.c irqchip: gic-v2m: Add support for ARM GICv2m MSI(-X) doorbell 2014-11-26 15:55:18 +00:00
irq-hip04.c irqchip: hip04: Enable Hisilicon HiP04 interrupt controller 2014-08-20 12:25:49 +00:00
irq-imgpdc.c
irq-keystone.c irqchip: keystone: Remove warning unsigned 'kirq->irq' is never less than zero 2014-09-03 11:48:44 +00:00
irq-metag-ext.c irq-metag*: stop set_affinity vectoring to offline cpus 2014-02-25 22:35:06 +00:00
irq-metag.c irq-metag*: stop set_affinity vectoring to offline cpus 2014-02-25 22:35:06 +00:00
irq-mmp.c irqchip: mmp: Convert to handle_domain_irq 2014-09-03 13:10:34 +00:00
irq-moxart.c irqchip: Remove asmlinkage from static functions 2014-03-12 13:00:41 +01:00
irq-mtk-sysirq.c irqchip: mtk-sysirq: Add sysirq interrupt polarity support 2014-11-26 15:55:17 +00:00
irq-mxs.c irqchip: mxs: Convert to handle_domain_irq 2014-09-03 13:10:35 +00:00
irq-nvic.c irqchip: nvic: Use the generic noop function 2014-06-21 02:12:42 +00:00
irq-omap-intc.c Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-09 06:42:04 -04:00
irq-or1k-pic.c irqchip: or1k-pic: Convert to handle_domain_irq 2014-09-03 13:10:54 +00:00
irq-orion.c irqchip: orion: Convert to handle_domain_irq 2014-09-03 13:10:37 +00:00
irq-renesas-intc-irqpin.c irqchip: renesas-intc-irqpin: Add minimal runtime PM support 2014-09-14 06:47:40 +00:00
irq-renesas-irqc.c irqchip: renesas-irqc: Enable mask on suspend 2014-01-22 21:48:55 +01:00
irq-s3c24xx.c irqchip: s3c24xx: Convert to handle_domain_irq 2014-09-03 13:10:38 +00:00
irq-sirfsoc.c irqchip: sirfsoc: Convert to handle_domain_irq 2014-09-03 13:10:40 +00:00
irq-sun4i.c irqchip: sun4i: Convert to handle_domain_irq 2014-09-03 13:10:42 +00:00
irq-sunxi-nmi.c irqchip: sun7i/sun6i: Disable NMI before registering the handler 2014-03-31 11:12:57 +02:00
irq-tb10x.c
irq-versatile-fpga.c irqchip: versatile-fpga: Convert to handle_domain_irq 2014-09-03 13:10:43 +00:00
irq-vic.c irqchip: vic: Convert to handle_domain_irq 2014-09-03 13:10:45 +00:00
irq-vt8500.c irqchip: vt8500: Convert to handle_domain_irq 2014-09-03 13:10:46 +00:00
irq-xtensa-mx.c irqchip: xtensa: Select only an online cpu 2014-03-04 17:37:55 +01:00
irq-xtensa-pic.c
irq-zevio.c irqchip: zevio: Convert to handle_domain_irq 2014-09-03 13:10:48 +00:00
irqchip.c irqchip: align irqchip OF match table section naming 2014-05-20 14:24:40 -05:00
irqchip.h of: consolidate linker section OF match table declarations 2014-05-20 14:25:24 -05:00
Kconfig irqchip: gic-v2m: Add support for ARM GICv2m MSI(-X) doorbell 2014-11-26 15:55:18 +00:00
Makefile irqchip: gic-v2m: Add support for ARM GICv2m MSI(-X) doorbell 2014-11-26 15:55:18 +00:00
spear-shirq.c irqchip: spear_shirq: Simplify register access code 2014-06-24 12:38:45 +00:00