linux/drivers/irqchip
Jianmin Lv 5cf0490a35 irqchip/loongson-pch-pic: Fix initialization of HT vector register
commit f679616565 upstream.

In an ACPI-based dual-bridge system, IRQ of each bridge's
PCH PIC sent to CPU is always a zero-based number, which
means that the IRQ on PCH PIC of each bridge is mapped into
vector range from 0 to 63 of upstream irqchip(e.g. EIOINTC).

      EIOINTC N: [0 ... 63 | 64 ... 255]
                  --------   ----------
                      ^          ^
                      |          |
                  PCH PIC N      |
                             PCH MSI N

For example, the IRQ vector number of sata controller on
PCH PIC of each bridge is 16, which is sent to upstream
irqchip of EIOINTC when an interrupt occurs, which will set
bit 16 of EIOINTC. Since hwirq of 16 on EIOINTC has been
mapped to a irq_desc for sata controller during hierarchy
irq allocation, the related mapped IRQ will be found through
irq_resolve_mapping() in the IRQ domain of EIOINTC.

So, the IRQ number set in HT vector register should be fixed
to be a zero-based number.

Cc: stable@vger.kernel.org
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn>
Co-developed-by: liuyun <liuyun@loongson.cn>
Signed-off-by: liuyun <liuyun@loongson.cn>
Signed-off-by: Jianmin Lv <lvjianmin@loongson.cn>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230614115936.5950-2-lvjianmin@loongson.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2023-07-19 16:36:51 +02:00
..
alphascale_asm9260-icoll.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
exynos-combiner.c Merge branch irq/generic_handle_domain_irq-core into irq/irqchip-next 2021-06-11 14:32:12 +01:00
irq-al-fic.c irqchip/al-fic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
irq-alpine-msi.c Merge branch irq/irqdomain-locking into irq/irqchip-next 2023-02-13 19:39:25 +00:00
irq-apple-aic.c ARM: 2023-02-25 11:30:21 -08:00
irq-armada-370-xp.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-aspeed-i2c-ic.c irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value 2022-05-04 16:37:48 +01:00
irq-aspeed-scu-ic.c irqchip/aspeed-scu-ic: Correctly initialise status and enable registers 2023-02-05 10:55:19 +00:00
irq-aspeed-vic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ath79-cpu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-ath79-misc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-atmel-aic-common.c irqchip/atmel-aic: Remove root argument from ->fixup() prototype 2017-07-04 11:10:37 +01:00
irq-atmel-aic-common.h irqchip/atmel-aic: Remove root argument from ->fixup() prototype 2017-07-04 11:10:37 +01:00
irq-atmel-aic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-atmel-aic5.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-bcm2835.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-bcm2836.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-bcm6345-l1.c irqchip/bcm-6345-l1: Request memory region 2023-04-08 11:07:43 +01:00
irq-bcm7038-l1.c irqchip/irq-bcm7038-l1: Switch to IRQCHIP_PLATFORM_DRIVER 2021-10-20 20:06:33 +01:00
irq-bcm7120-l2.c irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts 2023-02-18 14:23:41 +00:00
irq-brcmstb-l2.c irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts 2023-02-18 14:23:41 +00:00
irq-clps711x.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-crossbar.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-csky-apb-intc.c irqchip: Use of_property_read_bool() for boolean properties 2023-04-08 11:07:49 +01:00
irq-csky-mpintc.c irqchip/csky-mpintc: Fixup mask/unmask implementation 2021-11-12 16:09:50 +00:00
irq-davinci-cp-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-digicolor.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-dw-apb-ictl.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ftintc010.c irqchip/versatile-fpga: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-gic-common.c irqchip/gic: Correctly validate OF quirk descriptors 2023-05-30 11:01:22 +01:00
irq-gic-common.h irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues 2023-05-16 10:43:24 +01:00
irq-gic-pm.c irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() 2022-11-26 13:29:42 +00:00
irq-gic-realview.c irqchip/gic/realview: Fix refcount leak in realview_gic_of_init 2022-06-09 17:36:57 +01:00
irq-gic-v2m.c irqchip: Use of_property_read_bool() for boolean properties 2023-04-08 11:07:49 +01:00
irq-gic-v3-its-fsl-mc-msi.c bus: fsl-mc: Add ACPI support for fsl-mc 2020-07-28 15:51:32 +01:00
irq-gic-v3-its-pci-msi.c PCI/MSI: Make pci_msi_domain_write_msg() static 2021-12-09 11:52:20 +01:00
irq-gic-v3-its-platform-msi.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
irq-gic-v3-its.c - Nick Piggin's "shoot lazy tlbs" series, to improve the peformance of 2023-04-27 19:42:02 -07:00
irq-gic-v3-mbi.c irqchip/gic-v3-mbi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-gic-v3.c irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues 2023-05-16 10:43:24 +01:00
irq-gic-v4.c irqchip: Use irq_domain_alloc_irqs() 2023-01-11 19:51:39 +01:00
irq-gic.c irqchip/gic: Drop support for board files 2023-04-08 10:50:04 +01:00
irq-goldfish-pic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-hip04.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-i8259.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-idt3243x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-imgpdc.c Merge branch irq/generic_handle_domain_irq-core into irq/irqchip-next 2021-06-11 14:32:12 +01:00
irq-imx-gpcv2.c irqchip/irq-imx-gpcv2: Mark fwnode device as not initialized 2023-02-08 13:37:55 +01:00
irq-imx-intmux.c irqchip/imx-intmux: Move PM device over to irq domain 2022-02-09 13:36:53 +00:00
irq-imx-irqsteer.c irqchip/imx-irqsteer: Add runtime PM support 2022-05-04 16:44:51 +01:00
irq-imx-mu-msi.c irqchip/imx-mu-msi: Fix wrong register offset for 8ulp 2022-10-04 23:35:36 +01:00
irq-ingenic-tcu.c irqchip/ingenic-tcu: Use correctly sized arguments for bit field 2021-12-16 15:19:52 +00:00
irq-ingenic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-ixp4xx.c irq/gpio: ixp4xx: Drop boardfile probe path 2022-04-25 20:53:18 +02:00
irq-jcore-aic.c irqchip/jcore-aic: Fix missing allocation of IRQ descriptors 2023-07-19 16:35:11 +02:00
irq-keystone.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
irq-loongarch-cpu.c Merge branch irq/loongarch-of into irq/irqchip-next 2022-12-05 10:45:11 +00:00
irq-loongson-eiointc.c irqchip/loongson-eiointc: Fix irq affinity setting during resume 2023-07-19 16:35:11 +02:00
irq-loongson-htpic.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-loongson-htvec.c irqchip/loongson-htvec: Add suspend/resume support 2022-11-26 13:09:25 +00:00
irq-loongson-liointc.c irqchip/loongson-liointc: Fix IRQ trigger polarity 2023-07-19 16:36:50 +02:00
irq-loongson-pch-lpc.c irqchip/loongson-pch-lpc: Add suspend/resume support 2022-11-26 13:12:13 +00:00
irq-loongson-pch-msi.c irqchip/loongson-pch-msi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-loongson-pch-pic.c irqchip/loongson-pch-pic: Fix initialization of HT vector register 2023-07-19 16:36:51 +02:00
irq-lpc32xx.c irqchip/lpc32xx: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-ls-extirq.c irqchip/ls-extirq: Fix endianness detection 2022-12-05 10:39:52 +00:00
irq-ls-scfg-msi.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-ls1x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-madera.c irqchip/madera: Drop GPIO includes 2019-01-17 17:04:24 +00:00
irq-mbigen.c irqchip/mbigen: Unify the error handling in mbigen_of_create_domain() 2023-05-16 11:19:29 +01:00
irq-mchp-eic.c irqchip/mchp-eic: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-meson-gpio.c irqchip/meson-gpio: Mark OF related data as maybe unused 2023-05-16 11:01:18 +01:00
irq-mips-cpu.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-mips-gic.c irqchip/mips-gic: Use raw spinlock for gic_lock 2023-05-16 10:59:28 +01:00
irq-mmp.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-mscc-ocelot.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-mst-intc.c irqchip/irq-mst: Support polarity configuration 2021-04-07 13:26:00 +01:00
irq-mtk-cirq.c irqchip/irq-mtk-cirq: Add support for System CIRQ on MT8192 2022-11-28 11:44:02 +00:00
irq-mtk-sysirq.c irqchip/mtk-sysirq: Skip setting irq-wake 2021-08-12 08:15:15 +01:00
irq-mvebu-gicp.c irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe 2023-02-05 11:11:24 +00:00
irq-mvebu-icu.c irqchip/irq-mvebu-icu: Fix works by chance pointer assignment 2022-12-06 12:50:17 +01:00
irq-mvebu-odmi.c irqchip/mvebu-odmi: Use irq_domain_create_hierarchy() 2023-02-13 19:31:25 +00:00
irq-mvebu-pic.c irqchip/mvebu-pic: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-mvebu-sei.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-mxs.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-nvic.c ARM development updates for 5.18: 2022-03-23 17:35:57 -07:00
irq-omap-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-ompic.c irqchip/ompic: fix return value check in ompic_of_init() 2018-01-04 11:13:22 +00:00
irq-or1k-pic.c irqchip: or1k-pic: Undefine mask_ack for level triggered hardware 2022-06-28 17:31:15 +09:00
irq-orion.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-owl-sirq.c irqchip: Add Actions Semi Owl SIRQ controller 2020-09-25 16:57:33 +01:00
irq-partition-percpu.c irqchip/partitions: Switch to bitmap_zalloc() 2021-07-26 18:01:27 +01:00
irq-pic32-evic.c irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry 2021-07-09 10:18:58 +01:00
irq-pruss-intc.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-qcom-mpm.c irqchip/irq-qcom-mpm: fix return value check in qcom_mpm_init() 2022-04-05 16:33:13 +01:00
irq-rda-intc.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-realtek-rtl.c irqchip/realtek-rtl: use parent interrupts 2022-09-28 14:17:10 +01:00
irq-renesas-intc-irqpin.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-renesas-irqc.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-renesas-rza1.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-renesas-rzg2l.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:52 -07:00
irq-riscv-intc.c irqchip/riscv-intc: Add empty irq_eoi() for chained irq handlers 2023-04-08 11:26:24 +01:00
irq-sa11x0.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-sifive-plic.c irqchip/irq-sifive-plic: Add syscore callbacks for hibernation 2023-04-08 11:19:47 +01:00
irq-sl28cpld.c irqchip/irq-sl28cpld: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
irq-sni-exiu.c irqchip/exiu: Fix acknowledgment of edge triggered interrupts 2022-05-04 16:33:17 +01:00
irq-sp7021-intc.c irqchip: Add Sunplus SP7021 interrupt controller driver 2022-07-08 14:23:57 +02:00
irq-st.c irqchip/st: Remove stih415/stih416 and stid127 platforms support 2023-04-19 14:08:52 +01:00
irq-stm32-exti.c irqchip/stm32-exti: Fix warning on initialized field overwritten 2023-07-19 16:35:11 +02:00
irq-sun4i.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-sun6i-r.c irqchip/sun6i-r: Use NULL for chip_data 2022-05-04 16:36:59 +01:00
irq-sunxi-nmi.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-tb10x.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
irq-tegra.c irqchip/tegra: Fix overflow implicit truncation warnings 2022-06-15 17:41:11 +02:00
irq-ti-sci-inta.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
irq-ti-sci-intr.c irqchip: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
irq-ts4800.c irqchip/ts4800: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-uniphier-aidet.c irqchip/uniphier-aidet: Add compatible string for NX1 SoC 2022-06-09 17:41:57 +01:00
irq-versatile-fpga.c irqchip/versatile-fpga: Switch to dynamic chip name output 2022-02-15 11:25:46 +00:00
irq-vf610-mscm-ir.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq-vic.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-vt8500.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irq-wpcm450-aic.c irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() 2022-11-26 13:29:48 +00:00
irq-xilinx-intc.c irqchip/xilinx: Switch to GENERIC_IRQ_MULTI_HANDLER 2022-03-04 14:32:57 +00:00
irq-xtensa-mx.c irqchip/xtensa-mx: Fix initial IRQ affinity in non-SMP setup 2022-05-04 16:35:38 +01:00
irq-xtensa-pic.c drivers/irqchip: xtensa: add warning to irq_retrigger 2019-01-26 02:02:14 -08:00
irq-zevio.c irq: remove handle_domain_{irq,nmi}() 2021-10-26 10:13:31 +01:00
irqchip.c irqchip: Fix refcount leak in platform_irqchip_probe 2023-02-05 11:07:52 +00:00
Kconfig Merge branch irq/riscv-ipi into irq/irqchip-next 2023-04-21 14:05:17 +01:00
Makefile irqchip: remove davinci aintc driver 2023-01-12 10:53:12 +01:00
qcom-irq-combiner.c irqchip: Bulk conversion to generic_handle_domain_irq() 2021-06-10 13:09:19 +01:00
qcom-pdc.c irqchip/qcom-pdc: Drop open coded version of __assign_bit() 2022-03-01 10:06:25 +00:00
spear-shirq.c irqchip/spear-shirq: Add support for IRQ 0..6 2021-12-16 13:29:44 +00:00