summaryrefslogtreecommitdiff
path: root/drivers/irqchip/irq-gic-v3.c
diff options
context:
space:
mode:
authorShanker Donthineni <shankerd@codeaurora.org>2017-06-22 18:19:14 -0500
committerMarc Zyngier <marc.zyngier@arm.com>2017-06-23 09:14:59 +0100
commit6c31e123dc4c59eeaae6ac1cd08b929e8b6f7651 (patch)
treebeece5871128eb6133d8731a21e5cba1d5fc031c /drivers/irqchip/irq-gic-v3.c
parentdbd2b826723319eb6e4bee5214f8901e336c06be (diff)
downloadlwn-6c31e123dc4c59eeaae6ac1cd08b929e8b6f7651.tar.gz
lwn-6c31e123dc4c59eeaae6ac1cd08b929e8b6f7651.zip
irqchip/gic-v3-its: Don't assume GICv3 hardware supports 16bit INTID
The current ITS driver is assuming every ITS hardware implementation supports minimum of 16bit INTID. But this is not true, as per GICv3 specification, INTID field is IMPLEMENTATION DEFINED in the range of 14-24 bits. We might see an unpredictable system behavior on systems where hardware support less than 16bits and software tries to use 64K LPI interrupts. On Qualcomm Datacenter Technologies QDF2400 platform, boot log shows confusing information about number of LPI chunks as shown below. The QDF2400 ITS hardware supports 24bit INTID. This patch allocates the memory resources for PEND/PROP tables based on discoverable value which is specified in GITS_TYPER.IDbits. Also it fixes the log message that reflects the correct number of LPI chunks were allocated. ITS@0xff7efe0000: allocated 524288 Devices @3c0400000 (indirect, esz 8, psz 64K, shr 1) ITS@0xff7efe0000: allocated 8192 Interrupt Collections @3c0130000 (flat, esz 8, psz 64K, shr 1) ITS@0xff7efe0000: allocated 8192 Virtual CPUs @3c0140000 (flat, esz 8, psz 64K, shr 1) ITS: Allocated 524032 chunks for LPIs PCI/MSI: ITS@0xff7efe0000 domain created Platform MSI: ITS@0xff7efe0000 domain created Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip/irq-gic-v3.c')
0 files changed, 0 insertions, 0 deletions