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


Reply via email to