[dpdk-dev] [PATCH v4 2/4] net/enetc: enable Rx and Tx

Ferruh Yigit ferruh.yigit at intel.com
Mon Oct 1 17:59:53 CEST 2018


On 9/28/2018 8:45 AM, Gagandeep Singh wrote:
> Add RX and TX queue setup, datapath functions
> 
> Signed-off-by: Gagandeep Singh <g.singh at nxp.com>

<...>

> @@ -104,16 +104,19 @@ enum enetc_bdr_type {TX, RX};
>  #define ETH_ADDR_LEN			6
>  
>  /* general register accessors */
> -#define enetc_rd_reg(reg)	rte_read32((reg))
> -#define enetc_wr_reg(reg, val)	rte_write32((val), (reg))
> -#define enetc_rd(hw, off)	enetc_rd_reg((hw)->reg + (off))
> -#define enetc_wr(hw, off, val)	enetc_wr_reg((hw)->reg + (off), val)
> +#define enetc_rd_reg(reg)	rte_read32((void *)(reg))
> +#define enetc_wr_reg(reg, val)	rte_write32((val), (void *)(reg))
> +#define enetc_rd(hw, off)	enetc_rd_reg((size_t)(hw)->reg + (off))
> +#define enetc_wr(hw, off, val)	enetc_wr_reg((size_t)(hw)->reg + (off), val)
>  /* port register accessors - PF only */
> -#define enetc_port_rd(hw, off)		enetc_rd_reg((hw)->port + (off))
> -#define enetc_port_wr(hw, off, val)	enetc_wr_reg((hw)->port + (off), val)
> +#define enetc_port_rd(hw, off)	enetc_rd_reg((size_t)(hw)->port + (off))
> +#define enetc_port_wr(hw, off, val) \
> +				enetc_wr_reg((size_t)(hw)->port + (off), val)
>  /* global register accessors - PF only */
> -#define enetc_global_rd(hw, off)	enetc_rd_reg((hw)->global + (off))
> -#define enetc_global_wr(hw, off, val)	enetc_wr_reg((hw)->global + (off), val)
> +#define enetc_global_rd(hw, off) \
> +				enetc_rd_reg((size_t)(hw)->global + (off))
> +#define enetc_global_wr(hw, off, val) \
> +				enetc_wr_reg((size_t)(hw)->global + (off), val)

Is there any reason to not add these functions as updated version at first plane
at previous patch?

>  /* BDR register accessors, see ENETC_BDR() */
>  #define enetc_bdr_rd(hw, t, n, off) \
>  				enetc_rd(hw, ENETC_BDR(t, n, off))
> diff --git a/drivers/net/enetc/enetc.h b/drivers/net/enetc/enetc.h
> index 9fa7c726c..140daf0dd 100644
> --- a/drivers/net/enetc/enetc.h
> +++ b/drivers/net/enetc/enetc.h
> @@ -18,7 +18,11 @@
>  #define MAX_RX_RINGS	1
>  
>  /* Max BD counts per Ring. */
> -#define MAX_BD_COUNT	256
> +#define MAX_BD_COUNT	64000

Same here, is there a reason this has not been defined as 64000 in prev patch at
first place.
Or if this variable not used in prev patch at all, why not introduce here.

<...>

> @@ -37,6 +46,10 @@ static const struct eth_dev_ops enetc_ops = {
>  	.dev_close            = enetc_dev_close,
>  	.link_update          = enetc_link_update,
>  	.dev_infos_get        = enetc_dev_infos_get,
> +	.rx_queue_setup       = enetc_rx_queue_setup,
> +	.rx_queue_release     = enetc_rx_queue_release,
> +	.tx_queue_setup       = enetc_tx_queue_setup,
> +	.tx_queue_release     = enetc_tx_queue_release,

It is not very explicit in API doc but generally PMDs clean all queue related
resources in dev_close() too, can you please implement it.



More information about the dev mailing list