[PATCH iwl-next v1 00/10] Interrupts helper in libie
From: Michal Swiatkowski <hidden>
Date: 2026-09-07 11:04:22
Also in:
intel-wired-lan
Hi, To not copy the same code to handle interrupts in ixd driver move it to libie_irq module and use in both idpf and ixd. First part is changing current idpf code to make it more friendly to be moved to the lib. Basically there is no need to store MSI-X entries in separate table. Instead of that store it in xarray which also replace custom lifo implementation. Patch with libie is about moving the code to the new module. No functional changes here, just moving the code or adding some more descriptions. The irq code is similar in ice. One patch also coverd the changes in ice driver. Last patches is the implementation in ixd driver. To manage MSI-X it needs to first map correct regions. Do this using virtchnl command, similiary as in idpf. Michal Swiatkowski (10): idpf: store HW vectors information idpf: fill q_vector interrupt registers one by one idpf: get rid of msix_entries array idpf: drop v_idx from q_vector structure libie, idpf: move irq code to libie libie, idpf: move hardware irq info struct to libie libie, idpf: move parsing alloc vectors command to libie ice: use libie_irq for interrupts managing ixd: support for getting lan memory regions ixd: use interrupt for mailbox communication drivers/net/ethernet/intel/Kconfig | 1 + drivers/net/ethernet/intel/ice/ice.h | 5 +- drivers/net/ethernet/intel/ice/ice_base.c | 4 +- drivers/net/ethernet/intel/ice/ice_idc.c | 4 +- drivers/net/ethernet/intel/ice/ice_irq.c | 181 +------- drivers/net/ethernet/intel/ice/ice_irq.h | 14 - drivers/net/ethernet/intel/ice/ice_lib.c | 3 - drivers/net/ethernet/intel/ice/ice_main.c | 15 +- drivers/net/ethernet/intel/idpf/Kconfig | 1 + drivers/net/ethernet/intel/idpf/idpf.h | 70 +-- drivers/net/ethernet/intel/idpf/idpf_dev.c | 108 ++--- drivers/net/ethernet/intel/idpf/idpf_lib.c | 430 +++++------------- drivers/net/ethernet/intel/idpf/idpf_main.c | 3 +- drivers/net/ethernet/intel/idpf/idpf_txrx.c | 136 +++--- drivers/net/ethernet/intel/idpf/idpf_txrx.h | 23 +- drivers/net/ethernet/intel/idpf/idpf_vf_dev.c | 109 ++--- .../net/ethernet/intel/idpf/idpf_virtchnl.c | 162 +------ .../net/ethernet/intel/idpf/idpf_virtchnl.h | 9 +- drivers/net/ethernet/intel/ixd/Kconfig | 1 + drivers/net/ethernet/intel/ixd/ixd.h | 27 ++ drivers/net/ethernet/intel/ixd/ixd_ctlq.c | 8 +- drivers/net/ethernet/intel/ixd/ixd_lan_regs.h | 18 + drivers/net/ethernet/intel/ixd/ixd_lib.c | 93 ++++ drivers/net/ethernet/intel/ixd/ixd_main.c | 127 +++++- drivers/net/ethernet/intel/ixd/ixd_virtchnl.c | 70 +++ drivers/net/ethernet/intel/libie/Kconfig | 6 + drivers/net/ethernet/intel/libie/Makefile | 4 + drivers/net/ethernet/intel/libie/irq.c | 363 +++++++++++++++ include/linux/net/intel/libie/irq.h | 118 +++++ 29 files changed, 1174 insertions(+), 939 deletions(-) create mode 100644 drivers/net/ethernet/intel/libie/irq.c create mode 100644 include/linux/net/intel/libie/irq.h -- 2.49.0