From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: Wei Fang <wei.fang@nxp.com>
Cc: claudiu.manoil@nxp.com, xiaoning.wang@nxp.com,
andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, christophe.leroy@csgroup.eu,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
imx@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v4 net-next 02/14] net: enetc: add command BD ring support for i.MX95 ENETC
Date: Thu, 13 Mar 2025 18:49:08 +0200 [thread overview]
Message-ID: <20250313164908.rdy3y77xno3fza3l@skbuf> (raw)
In-Reply-To: <20250311053830.1516523-3-wei.fang@nxp.com> <20250311053830.1516523-3-wei.fang@nxp.com>
On Tue, Mar 11, 2025 at 01:38:18PM +0800, Wei Fang wrote:
> The command BD ring is used to configure functionality where the
> underlying resources may be shared between different entities or being
> too large to configure using direct registers (such as lookup tables).
>
> Because the command BD and table formats of i.MX95 and LS1028A are very
> different, the software processing logic is also different. In order to
> ensure driver compatibility, struct enetc_si_ops is introduced. This
> structure defines some hooks shared by VSI and PSI. Different hardware
> driver will register different hooks, For example, setup_cbdr() is used
> to initialize the command BD ring, and teardown_cbdr() is used to free
> the command BD ring.
>
> Signed-off-by: Wei Fang <wei.fang@nxp.com>
> ---
> drivers/net/ethernet/freescale/enetc/enetc.h | 27 +++++++--
> .../net/ethernet/freescale/enetc/enetc4_pf.c | 47 +++++++++++++++-
> .../net/ethernet/freescale/enetc/enetc_cbdr.c | 55 +++++++++++++++++--
> .../net/ethernet/freescale/enetc/enetc_pf.c | 13 +++--
> .../net/ethernet/freescale/enetc/enetc_vf.c | 13 +++--
> 5 files changed, 136 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc.h b/drivers/net/ethernet/freescale/enetc/enetc.h
> index 4ad4eb5c5a74..4ff0957e69be 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc.h
> +++ b/drivers/net/ethernet/freescale/enetc/enetc.h
> @@ -8,6 +8,7 @@
> #include <linux/dma-mapping.h>
> #include <linux/skbuff.h>
> #include <linux/ethtool.h>
> +#include <linux/fsl/ntmp.h>
> #include <linux/if_vlan.h>
> #include <linux/phylink.h>
> #include <linux/dim.h>
> @@ -266,6 +267,19 @@ struct enetc_platform_info {
> const struct enetc_drvdata *data;
> };
>
> +struct enetc_si;
> +
> +/*
> + * This structure defines the some common hooks for ENETC PSI and VSI.
> + * In addition, since VSI only uses the struct enetc_si as its private
> + * driver data, so this structure also define some hooks specifically
> + * for VSI. For VSI-specific hooks, the format is ‘vf_*()’.
> + */
> +struct enetc_si_ops {
> + int (*setup_cbdr)(struct enetc_si *si);
> + void (*teardown_cbdr)(struct enetc_si *si);
> +};
I don't understand the need for si->ops->setup_cbdr() and si->ops->teardown_cbdr()?
Doesn't every call site know which kind of SI it is dealing with, and thus it can
appropriately call the direct symbol?
- the v1 PSI and the VSI call enetc_setup_cbdr() and enetc_teardown_cbdr()
- the v4 PSI calls enetc4_setup_cbdr() and enetc4_teardown_cbdr()
What benefit is there to making an indirect function call?
At least that's what the current code does, I'm not sure if that is the intention.
next prev parent reply other threads:[~2025-03-13 17:15 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-11 5:38 [PATCH v4 net-next 00/14] Add more feautues for ENETC v4 - round 2 Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 01/14] net: enetc: add initial netc-lib driver to support NTMP Wei Fang
2025-03-11 12:17 ` Michal Kubiak
2025-03-13 16:35 ` Vladimir Oltean
2025-03-14 3:38 ` Wei Fang
2025-03-14 12:37 ` Vladimir Oltean
2025-03-14 13:48 ` Wei Fang
2025-03-17 9:28 ` Vladimir Oltean
2025-03-17 9:55 ` Wei Fang
2025-03-17 10:00 ` Vladimir Oltean
2025-03-17 11:39 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 02/14] net: enetc: add command BD ring support for i.MX95 ENETC Wei Fang
2025-03-11 12:22 ` Michal Kubiak
2025-03-13 16:49 ` Vladimir Oltean [this message]
2025-03-14 4:51 ` Wei Fang
2025-03-14 11:18 ` Vladimir Oltean
2025-03-14 13:56 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 03/14] net: enetc: move generic MAC filterng interfaces to enetc-core Wei Fang
2025-03-17 9:42 ` Vladimir Oltean
2025-03-17 10:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 04/14] net: enetc: add MAC filter for i.MX95 ENETC PF Wei Fang
2025-03-17 14:18 ` Vladimir Oltean
2025-03-18 3:19 ` Wei Fang
2025-03-18 9:29 ` Vladimir Oltean
2025-03-18 9:48 ` Wei Fang
2025-03-18 8:08 ` Claudiu Manoil
2025-03-18 8:47 ` Vladimir Oltean
2025-03-11 5:38 ` [PATCH v4 net-next 05/14] net: enetc: add debugfs interface to dump MAC filter Wei Fang
2025-03-17 14:48 ` Vladimir Oltean
2025-03-18 3:28 ` Wei Fang
2025-03-18 14:54 ` Vladimir Oltean
2025-03-11 5:38 ` [PATCH v4 net-next 06/14] net: enetc: add set/get_rss_table() to enetc_si_ops Wei Fang
2025-03-17 16:42 ` Vladimir Oltean
2025-03-18 5:06 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 07/14] net: enetc: make enetc_set_rss_key() reusable Wei Fang
2025-03-17 16:26 ` Vladimir Oltean
2025-03-18 4:54 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 08/14] net: enetc: add RSS support for i.MX95 ENETC PF Wei Fang
2025-03-17 15:55 ` Vladimir Oltean
2025-03-18 4:47 ` Wei Fang
2025-03-18 11:43 ` Vladimir Oltean
2025-03-18 14:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 09/14] net: enetc: enable RSS feature by default Wei Fang
2025-03-17 16:33 ` Vladimir Oltean
2025-03-18 5:00 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 10/14] net: enetc: move generic VLAN filter interfaces to enetc-core Wei Fang
2025-03-17 17:05 ` Vladimir Oltean
2025-03-18 5:12 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 11/14] net: enetc: move generic VLAN hash filter functions to enetc_pf_common.c Wei Fang
2025-03-18 10:21 ` Vladimir Oltean
2025-03-18 13:57 ` Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 12/14] net: enetc: add VLAN filtering support for i.MX95 ENETC PF Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 13/14] net: enetc: add loopback " Wei Fang
2025-03-11 5:38 ` [PATCH v4 net-next 14/14] MAINTAINERS: add new file ntmp.h to ENETC driver Wei Fang
2025-03-17 17:06 ` Vladimir Oltean
2025-03-18 5:13 ` Wei Fang
2025-03-13 13:50 ` [PATCH v4 net-next 00/14] Add more feautues for ENETC v4 - round 2 Vladimir Oltean
2025-03-14 1:28 ` Wei Fang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250313164908.rdy3y77xno3fza3l@skbuf \
--to=vladimir.oltean@nxp.com \
--cc=andrew+netdev@lunn.ch \
--cc=christophe.leroy@csgroup.eu \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=imx@lists.linux.dev \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=wei.fang@nxp.com \
--cc=xiaoning.wang@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).