RE: [Intel-wired-lan] [PATCH iwl-next v7 07/14] idpf: refactor idpf to use libie_pci APIs

From: Loktionov, Aleksandr

Date: Tue Apr 28 2026 - 04:48:23 EST




> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@xxxxxxxxxx> On Behalf
> Of Larysa Zaremba
> Sent: Tuesday, April 28, 2026 10:27 AM
> To: intel-wired-lan@xxxxxxxxxxxxxxxx; Nguyen, Anthony L
> <anthony.l.nguyen@xxxxxxxxx>
> Cc: Lobakin, Aleksander <aleksander.lobakin@xxxxxxxxx>; Samudrala,
> Sridhar <sridhar.samudrala@xxxxxxxxx>; Michal Swiatkowski
> <michal.swiatkowski@xxxxxxxxxxxxxxx>; Zaremba, Larysa
> <larysa.zaremba@xxxxxxxxx>; Fijalkowski, Maciej
> <maciej.fijalkowski@xxxxxxxxx>; Tantilov, Emil S
> <emil.s.tantilov@xxxxxxxxx>; Chittim, Madhu <madhu.chittim@xxxxxxxxx>;
> Hay, Joshua A <joshua.a.hay@xxxxxxxxx>; Keller, Jacob E
> <jacob.e.keller@xxxxxxxxx>; Shanmugam, Jayaprakash
> <jayaprakash.shanmugam@xxxxxxxxx>; Jiri Pirko <jiri@xxxxxxxxxxx>;
> David S. Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
> <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
> <pabeni@xxxxxxxxxx>; Simon Horman <horms@xxxxxxxxxx>; Jonathan Corbet
> <corbet@xxxxxxx>; Richard Cochran <richardcochran@xxxxxxxxx>; Kitszel,
> Przemyslaw <przemyslaw.kitszel@xxxxxxxxx>; Andrew Lunn
> <andrew+netdev@xxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-
> doc@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Salin, Samuel
> <samuel.salin@xxxxxxxxx>
> Subject: [Intel-wired-lan] [PATCH iwl-next v7 07/14] idpf: refactor
> idpf to use libie_pci APIs
>
> From: Pavan Kumar Linga <pavan.kumar.linga@xxxxxxxxx>
>
> Use libie_pci init and MMIO APIs where possible, struct idpf_hw cannot
> be deleted for now as it also houses control queues that will be
> refactored later. Use libie_cp header for libie_ctlq_ctx that contains
> mmio info from the start in order to not increase the diff later.
>
> Reviewed-by: Madhu Chittim <madhu.chittim@xxxxxxxxx>
> Reviewed-by: Sridhar Samudrala <sridhar.samudrala@xxxxxxxxx>
> Signed-off-by: Pavan Kumar Linga <pavan.kumar.linga@xxxxxxxxx>
> Co-developed-by: Larysa Zaremba <larysa.zaremba@xxxxxxxxx>
> Signed-off-by: Larysa Zaremba <larysa.zaremba@xxxxxxxxx>
> Tested-by: Samuel Salin <Samuel.salin@xxxxxxxxx>
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@xxxxxxxxx>
> ---
> drivers/net/ethernet/intel/idpf/Kconfig | 1 +
> drivers/net/ethernet/intel/idpf/idpf.h | 70 +-------
> .../net/ethernet/intel/idpf/idpf_controlq.c | 26 ++-
> .../net/ethernet/intel/idpf/idpf_controlq.h | 2 -
> drivers/net/ethernet/intel/idpf/idpf_dev.c | 61 ++++---
> drivers/net/ethernet/intel/idpf/idpf_idc.c | 38 ++--
> drivers/net/ethernet/intel/idpf/idpf_lib.c | 7 +-
> drivers/net/ethernet/intel/idpf/idpf_main.c | 114 ++++++------
> drivers/net/ethernet/intel/idpf/idpf_vf_dev.c | 57 +++---
> .../net/ethernet/intel/idpf/idpf_virtchnl.c | 169 +++++++++--------
> -
> .../ethernet/intel/idpf/idpf_virtchnl_ptp.c | 58 +++---
> 11 files changed, 288 insertions(+), 315 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/idpf/Kconfig
> b/drivers/net/ethernet/intel/idpf/Kconfig
> index adab2154125b..586df3a4afe9 100644
> --- a/drivers/net/ethernet/intel/idpf/Kconfig
> +++ b/drivers/net/ethernet/intel/idpf/Kconfig
> @@ -6,6 +6,7 @@ config IDPF
> depends on PCI_MSI
> depends on PTP_1588_CLOCK_OPTIONAL
> select DIMLIB
> + select LIBIE_CP
> select LIBETH_XDP
> help
> This driver supports Intel(R) Infrastructure Data Path
> Function diff --git a/drivers/net/ethernet/intel/idpf/idpf.h
> b/drivers/net/ethernet/intel/idpf/idpf.h
> index 0d08f51be7e3..efdb58990a8b 100644
> --- a/drivers/net/ethernet/intel/idpf/idpf.h
> +++ b/drivers/net/ethernet/intel/idpf/idpf.h
> @@ -23,6 +23,7 @@ struct idpf_rss_data;
>
> #include <linux/intel/iidc_rdma.h>
> #include <linux/intel/iidc_rdma_idpf.h>
> +#include <linux/intel/libie/controlq.h>
> #include <linux/intel/virtchnl2.h>
>
> #include "idpf_txrx.h"
> @@ -625,6 +626,7 @@ struct idpf_vc_xn_manager;
> * @flags: See enum idpf_flags
> * @reset_reg: See struct idpf_reset_reg
> * @hw: Device access data

...

> for (i = 0; i < num_vecs; i++) {
> struct idpf_q_vector *q_vector = &rsrc->q_vectors[i];
> u16 vec_id = rsrc->q_vector_idxs[i] - IDPF_MBX_Q_VEC;
> struct idpf_intr_reg *intr = &q_vector->intr_reg;
> + struct idpf_vec_regs *reg = &reg_vals[vec_id];
> u32 spacing;
>
> - intr->dyn_ctl = idpf_get_reg_addr(adapter,
> -
> reg_vals[vec_id].dyn_ctl_reg);
> + intr->dyn_ctl = libie_pci_get_mmio_addr(mmio,
> + reg->dyn_ctl_reg);
Stray TAB after =

> intr->dyn_ctl_intena_m = PF_GLINT_DYN_CTL_INTENA_M;
> intr->dyn_ctl_intena_msk_m =
> PF_GLINT_DYN_CTL_INTENA_MSK_M;
> intr->dyn_ctl_itridx_s = PF_GLINT_DYN_CTL_ITR_INDX_S; @@

...

>
> return 0;
> }
> --
> 2.47.0