[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZCst4PvQ+dlZEbgl@corigine.com>
Date: Mon, 3 Apr 2023 21:49:52 +0200
From: Simon Horman <simon.horman@...igine.com>
To: Shenwei Wang <shenwei.wang@....com>
Cc: "David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Shawn Guo <shawnguo@...nel.org>,
Sascha Hauer <s.hauer@...gutronix.de>,
Pengutronix Kernel Team <kernel@...gutronix.de>,
Giuseppe Cavallaro <peppe.cavallaro@...com>,
Alexandre Torgue <alexandre.torgue@...s.st.com>,
Jose Abreu <joabreu@...opsys.com>,
Fabio Estevam <festevam@...il.com>,
NXP Linux Team <linux-imx@....com>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Wong Vee Khee <veekhee@...le.com>,
Kurt Kanzenbach <kurt@...utronix.de>,
Mohammad Athari Bin Ismail <mohammad.athari.ismail@...el.com>,
Andrey Konovalov <andrey.konovalov@...aro.org>,
Jochen Henneberg <jh@...neberg-systemdesign.com>,
Tan Tee Min <tee.min.tan@...ux.intel.com>,
netdev@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-stm32@...md-mailman.stormreply.com, imx@...ts.linux.dev
Subject: Re: [PATCH v5 1/2] net: stmmac: add support for platform specific
reset
On Mon, Apr 03, 2023 at 10:24:07AM -0500, Shenwei Wang wrote:
> This patch adds support for platform-specific reset logic in the
> stmmac driver. Some SoCs require a different reset mechanism than
> the standard dwmac IP reset. To support these platforms, a new function
> pointer 'fix_soc_reset' is added to the plat_stmmacenet_data structure.
> The stmmac_reset in hwif.h is modified to call the 'fix_soc_reset'
> function if it exists. This enables the driver to use the platform-specific
> reset logic when necessary.
>
> Signed-off-by: Shenwei Wang <shenwei.wang@....com>
> ---
> v5:
> - add the missing __iomem tag in the stmmac_reset definition.
>
> drivers/net/ethernet/stmicro/stmmac/hwif.c | 10 ++++++++++
> drivers/net/ethernet/stmicro/stmmac/hwif.h | 3 +--
> include/linux/stmmac.h | 1 +
> 3 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
> index bb7114f970f8..0eefa697ffe8 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
> @@ -87,6 +87,16 @@ static int stmmac_dwxlgmac_quirks(struct stmmac_priv *priv)
> return 0;
> }
>
> +int stmmac_reset(struct stmmac_priv *priv, void __iomem *ioaddr)
> +{
> + struct plat_stmmacenet_data *plat = priv ? priv->plat : NULL;
Here the case where priv is NULL is handled.
> +
> + if (plat && plat->fix_soc_reset)
> + return plat->fix_soc_reset(plat, ioaddr);
> +
> + return stmmac_do_callback(priv, dma, reset, ioaddr);
But this will dereference priv unconditionally.
I think perhaps this is code that I suggested.
If so, sorry about not noticing this then.
> +}
> +
> static const struct stmmac_hwif_entry {
> bool gmac;
> bool gmac4;
...
Powered by blists - more mailing lists