> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of
> Loktionov, Aleksandr
> Sent: 29 September, 2025 08:27
> To: Chittim, Madhu <[email protected]>; [email protected]
> Cc: [email protected]; Lobakin, Aleksander
> <[email protected]>; [email protected]; Samudrala, Sridhar
> <[email protected]>
> Subject: Re: [Intel-wired-lan] [PATCH iwl-next v5] idpf: add support for IDPF
> PCI
> programming interface
>
>
>
> > -----Original Message-----
> > From: Intel-wired-lan <[email protected]> On Behalf
> > Of Madhu Chittim
> > Sent: Friday, September 26, 2025 8:46 PM
> > To: [email protected]
> > Cc: [email protected]; Lobakin, Aleksander
> > <[email protected]>; [email protected]; Samudrala, Sridhar
> > <[email protected]>
> > Subject: [Intel-wired-lan] [PATCH iwl-next v5] idpf: add support for
> > IDPF PCI programming interface
> >
> > From: Pavan Kumar Linga <[email protected]>
> >
> > At present IDPF supports only 0x1452 and 0x145C as PF and VF device
> > IDs on our current generation hardware. Future hardware exposes a new
> > set of device IDs for each generation. To avoid adding a new device ID
> > for each generation and to make the driver forward and backward
> > compatible, make use of the IDPF PCI programming interface to load the
> > driver.
> >
> > Write and read the VF_ARQBAL mailbox register to find if the current
> > device is a PF or a VF.
> >
> > PCI SIG allocated a new programming interface for the IDPF compliant
> > ethernet network controller devices. It can be found at:
> > https://members.pcisig.com/wg/PCI-SIG/document/20113
> > with the document titled as 'PCI Code and ID Assignment Revision 1.16'
> > or any latest revisions.
> >
> > Tested this patch by doing a simple driver load/unload on Intel IPU
> > E2000 hardware which supports 0x1452 and 0x145C device IDs and new
> > hardware which supports the IDPF PCI programming interface.
> >
> > Reviewed-by: Sridhar Samudrala <[email protected]>
> > Reviewed-by: Simon Horman <[email protected]>
> > Signed-off-by: Pavan Kumar Linga <[email protected]>
> > Signed-off-by: Madhu Chittim <[email protected]>
> > ---
> > v5:
> > - Removed use of resource_set_range
> > - ioremap only the register which we would like write and read back
> > - Renamed function from idpf_is_vf_device to idpf_get_device_type and
> > moved it idpf_main.c as it is not specific to VF
> > - idpf_get_device_type now returns device type
> >
> > v4:
> > - add testing info
> > - use resource_size_t instead of long
> > - add error statement for ioremap failure
> >
> > v3:
> > - reworked logic to avoid gotos
> >
> > v2:
> > - replace *u8 with *bool in idpf_is_vf_device function parameter
> > - use ~0 instead of 0xffffff in PCI_DEVICE_CLASS parameter
> >
> > drivers/net/ethernet/intel/idpf/idpf.h | 1 +
> > drivers/net/ethernet/intel/idpf/idpf_main.c | 105 ++++++++++++++++---
> > -
> > 2 files changed, 89 insertions(+), 17 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/intel/idpf/idpf.h
> > b/drivers/net/ethernet/intel/idpf/idpf.h
> > index 8cfc68cbfa06..bdabea45e81f 100644
> > --- a/drivers/net/ethernet/intel/idpf/idpf.h
> > +++ b/drivers/net/ethernet/intel/idpf/idpf.h
> > @@ -1005,6 +1005,7 @@ void idpf_mbx_task(struct work_struct *work);
> > void idpf_vc_event_task(struct work_struct *work); void
> > idpf_dev_ops_init(struct idpf_adapter *adapter); void
> > idpf_vf_dev_ops_init(struct idpf_adapter *adapter);
> > +int idpf_get_device_type(struct pci_dev *pdev);
> > int idpf_intr_req(struct idpf_adapter *adapter); void
> > idpf_intr_rel(struct idpf_adapter *adapter);
> > u16 idpf_get_max_tx_hdr_size(struct idpf_adapter *adapter); diff --
> > git a/drivers/net/ethernet/intel/idpf/idpf_main.c
> > b/drivers/net/ethernet/intel/idpf/idpf_main.c
> > index 8c46481d2e1f..f1af7dadf179 100644
> > --- a/drivers/net/ethernet/intel/idpf/idpf_main.c
> > +++ b/drivers/net/ethernet/intel/idpf/idpf_main.c
> > @@ -3,15 +3,93 @@
> >
> ...
> > --
> > 2.51.0
>
> Reviewed-by: Aleksandr Loktionov <[email protected]>
>
Tested-by: Marek Landowski <[email protected]>