irqchip/loongson-pch-pic: Update interrupt registration policy
authorBaoqi Zhang <zhangbaoqi@loongson.cn>
Mon, 22 Apr 2024 09:38:30 +0000 (17:38 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Mon, 22 Apr 2024 22:17:07 +0000 (00:17 +0200)
commit234a557e28b9142e07eae21083a04fffef83ee8d
treedaa250bdaaca22bda4a64d34a11ffdf61049293f
parentbb58c1baa501e3d695d8e13a5bd955fd00e2e879
irqchip/loongson-pch-pic: Update interrupt registration policy

The current code is using a fixed mapping between the LS7A interrupt source
and the HT interrupt vector. This prevents the utilization of the full
interrupt vector space and therefore limits the number of interrupt source
in a system.

Replace the fixed mapping with a dynamic mapping which allocates a
vector when an interrupt source is set up. This avoids that unused
sources prevent vectors from being used for other devices.

Introduce a mapping table in struct pch_pic, where each interrupt source
will allocate an index as a 'hwirq' number from the table in the order of
application and set table value as interrupt source number. This hwirq
number will be configured as vector in the HT interrupt controller. For an
interrupt source, the validity period of the obtained hwirq will last until
the system reset.

Co-developed-by: Biao Dong <dongbiao@loongson.cn>
Signed-off-by: Biao Dong <dongbiao@loongson.cn>
Co-developed-by: Tianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: Baoqi Zhang <zhangbaoqi@loongson.cn>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20240422093830.27212-1-zhangtianyang@loongson.cn
drivers/irqchip/irq-loongson-pch-pic.c