[PATCH v6 00/10] RISC-V IMSIC driver improvements
Anup Patel
apatel at ventanamicro.com
Mon Feb 17 00:56:46 PST 2025
This series is based on recent discussion on LKML:
https://lore.kernel.org/lkml/20241114161845.502027-18-ajones@ventanamicro.com/
It primarily focuses on moving to RISC-V IMSIC driver use common MSI
lib and GENERIC_PENDING_IRQ.
PATCH1 & PATCH2: Preparatory patches
PATCH3: Updates IMSIC driver to use MSI lib
PATCH4 to PATCH5: Preparatory patches for moving to GENERIC_PENDING_IRQ
PATCH6 to PATCH10: Patches to use GENERIC_PENDING_IRQ in IMSIC driver
These patches can also be found in the riscv_imsic_imp_v6 branch at:
https://github.com/avpatel/linux.git
Changes since v5:
- Rebased upon Linux-6.14-rc1
- Drop PATCH6 since it is already merged
- Update commit description of PATCH1
Changes since v4:
- Updated PATCH4 with better irq_force_complete_move() implementation
provided by Thomas.
Changes since v3:
- Dropped PATCH1 of v3 series and updated last patch of this series
to handle the intermediate state for non-atomic MSI update.
- Added new PATCH6 in this series to remove stale kconfig option
GENERIC_PENDING_IRQ_CHIPFLAGS.
Changes since v2:
- Rebased upon Linux-6.14-rc1
- Dropped PATCH5 of v2 series since that patch is already merged
Changes since v1:
- Changed series subject
- Expand this series to use GENERIC_PENDING_IRQ in IMSIC driver
Andrew Jones (1):
irqchip/riscv-imsic: Set irq_set_affinity for IMSIC base
Anup Patel (6):
genirq: Introduce irq_can_move_in_process_context()
RISC-V: Select GENERIC_PENDING_IRQ
irqchip/riscv-imsic: Separate next and previous pointers in IMSIC
vector
irqchip/riscv-imsic: Implement irq_force_complete_move() for IMSIC
irqchip/riscv-imsic: Replace hwirq with irq in the IMSIC vector
irqchip/riscv-imsic: Special handling for non-atomic device MSI update
Thomas Gleixner (3):
irqchip/irq-msi-lib: Optionally set default irq_eoi/irq_ack
irqchip/riscv-imsic: Move to common MSI lib
genirq: Introduce common irq_force_complete_move() implementation
arch/riscv/Kconfig | 1 +
arch/x86/kernel/apic/vector.c | 231 ++++++++++-----------
drivers/irqchip/Kconfig | 8 +-
drivers/irqchip/irq-gic-v2m.c | 1 +
drivers/irqchip/irq-imx-mu-msi.c | 1 +
drivers/irqchip/irq-msi-lib.c | 11 +-
drivers/irqchip/irq-mvebu-gicp.c | 1 +
drivers/irqchip/irq-mvebu-odmi.c | 1 +
drivers/irqchip/irq-mvebu-sei.c | 1 +
drivers/irqchip/irq-riscv-imsic-early.c | 14 +-
drivers/irqchip/irq-riscv-imsic-platform.c | 197 +++++++++---------
drivers/irqchip/irq-riscv-imsic-state.c | 152 ++++++++++----
drivers/irqchip/irq-riscv-imsic-state.h | 12 +-
include/linux/irq.h | 7 +-
include/linux/msi.h | 11 +
kernel/irq/internals.h | 2 +
kernel/irq/migration.c | 21 ++
17 files changed, 389 insertions(+), 283 deletions(-)
--
2.43.0
More information about the linux-riscv
mailing list