>  idpf_vport_irq_unmap_config(struct idpf_vport *vport, uint16_t nb_rx_queues)
>  {
> diff --git a/drivers/common/idpf/idpf_common_device.h
> b/drivers/common/idpf/idpf_common_device.h
> index 112367dae8..f767ea7cec 100644
> --- a/drivers/common/idpf/idpf_common_device.h
> +++ b/drivers/common/idpf/idpf_common_device.h
> @@ -200,5 +200,9 @@ int idpf_vport_info_init(struct idpf_vport *vport,
>                        struct virtchnl2_create_vport *vport_info);
>  __rte_internal
>  void idpf_vport_stats_update(struct virtchnl2_vport_stats *oes, struct
> virtchnl2_vport_stats *nes);
> +__rte_internal
> +int idpf_vport_irq_map_config_by_qids(struct idpf_vport *vport,
> +                                   uint32_t *qids,
> +                                   uint16_t nb_rx_queues);
> 
>  #endif /* _IDPF_COMMON_DEVICE_H_ */
> diff --git a/drivers/common/idpf/version.map b/drivers/common/idpf/version.map
> index 25624732b0..0729f6b912 100644
> --- a/drivers/common/idpf/version.map
> +++ b/drivers/common/idpf/version.map
> @@ -69,6 +69,7 @@ INTERNAL {
>       idpf_vport_info_init;
>       idpf_vport_init;
>       idpf_vport_irq_map_config;
> +     idpf_vport_irq_map_config_by_qids;
>       idpf_vport_irq_unmap_config;
>       idpf_vport_rss_config;
>       idpf_vport_stats_update;

The same, split common change with net one?

> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index c2ab0690fc..3b480178c0 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -730,11 +730,22 @@ cpfl_dev_configure(struct rte_eth_dev *dev)
>  static int
>  cpfl_config_rx_queues_irqs(struct rte_eth_dev *dev)
>  {
> +     uint32_t qids[CPFL_MAX_P2P_NB_QUEUES + IDPF_DEFAULT_RXQ_NUM] = {0};
>       struct cpfl_vport *cpfl_vport = dev->data->dev_private;
>       struct idpf_vport *vport = &cpfl_vport->base;
>       uint16_t nb_rx_queues = dev->data->nb_rx_queues;
> +     struct cpfl_rx_queue *cpfl_rxq;
> +     int i;
> 
> -     return idpf_vport_irq_map_config(vport, nb_rx_queues);
> +     for (i = 0; i < nb_rx_queues; i++) {
> +             cpfl_rxq = dev->data->rx_queues[i];
> +             if (cpfl_rxq->hairpin_info.hairpin_q)
> +                     qids[i] = cpfl_hw_qid_get(cpfl_vport-
> >p2p_q_chunks_info.rx_start_qid,
> +                                               (i - 
> cpfl_vport->nb_data_rxq));
> +             else
> +                     qids[i] = 
> cpfl_hw_qid_get(vport->chunks_info.rx_start_qid, i);

Looks like cpfl_hw_qid_get  and is used cross files, how about defined it as 
inline or Macro in header file?

> +     }
> +     return idpf_vport_irq_map_config_by_qids(vport, qids, nb_rx_queues);
>  }
> 
>  /* Update hairpin_info for dev's tx hairpin queue */
> --
> 2.26.2

Reply via email to