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

From: Larysa Zaremba

Date: Tue Apr 28 2026 - 10:15:47 EST


On Tue, Apr 28, 2026 at 10:47:29AM +0200, Loktionov, Aleksandr wrote:
>
>
> > -----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 =

Seems so.

>
> > 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
>