From: Piotr Raczynski <piotr.raczynski@intel.com>
To: Sebastian Reichel <sebastian.reichel@collabora.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>,
Alexandre Torgue <alexandre.torgue@foss.st.com>,
Jose Abreu <joabreu@synopsys.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
Maxime Coquelin <mcoquelin.stm32@gmail.com>,
<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<kernel@collabora.com>
Subject: Re: [PATCHv1 1/2] net: ethernet: stmmac: dwmac-rk: fix optional clock handling
Date: Fri, 17 Mar 2023 19:24:31 +0100 [thread overview]
Message-ID: <ZBSwX+eBsE02A3Xz@nimitz> (raw)
In-Reply-To: <20230317174243.61500-2-sebastian.reichel@collabora.com>
On Fri, Mar 17, 2023 at 06:42:42PM +0100, Sebastian Reichel wrote:
> Right now any clock errors are printed and otherwise ignored.
> This has multiple disadvantages:
>
> 1. it prints errors for clocks that do not exist (e.g. rk3588
> reports errors for "mac_clk_rx", "mac_clk_tx" and "clk_mac_speed")
>
> 2. it does not handle errors like -EPROBE_DEFER correctly
>
> This series fixes it by switching to devm_clk_get_optional(),
> so that missing clocks are not considered an error and then
> passing on any other errors using dev_err_probe().
>
Fixes tag would help here.
Piotr
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
> ---
> .../net/ethernet/stmicro/stmmac/dwmac-rk.c | 47 ++++++++++---------
> 1 file changed, 24 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
> index 4b8fd11563e4..126812cd17e6 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
> @@ -1479,49 +1479,50 @@ static int rk_gmac_clk_init(struct plat_stmmacenet_data *plat)
>
> bsp_priv->clk_enabled = false;
>
> - bsp_priv->mac_clk_rx = devm_clk_get(dev, "mac_clk_rx");
> + bsp_priv->mac_clk_rx = devm_clk_get_optional(dev, "mac_clk_rx");
> if (IS_ERR(bsp_priv->mac_clk_rx))
> - dev_err(dev, "cannot get clock %s\n",
> - "mac_clk_rx");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->mac_clk_rx),
> + "cannot get clock %s\n", "mac_clk_rx");
>
> - bsp_priv->mac_clk_tx = devm_clk_get(dev, "mac_clk_tx");
> + bsp_priv->mac_clk_tx = devm_clk_get_optional(dev, "mac_clk_tx");
> if (IS_ERR(bsp_priv->mac_clk_tx))
> - dev_err(dev, "cannot get clock %s\n",
> - "mac_clk_tx");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->mac_clk_tx),
> + "cannot get clock %s\n", "mac_clk_tx");
>
> - bsp_priv->aclk_mac = devm_clk_get(dev, "aclk_mac");
> + bsp_priv->aclk_mac = devm_clk_get_optional(dev, "aclk_mac");
> if (IS_ERR(bsp_priv->aclk_mac))
> - dev_err(dev, "cannot get clock %s\n",
> - "aclk_mac");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->aclk_mac),
> + "cannot get clock %s\n", "aclk_mac");
>
> - bsp_priv->pclk_mac = devm_clk_get(dev, "pclk_mac");
> + bsp_priv->pclk_mac = devm_clk_get_optional(dev, "pclk_mac");
> if (IS_ERR(bsp_priv->pclk_mac))
> - dev_err(dev, "cannot get clock %s\n",
> - "pclk_mac");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->pclk_mac),
> + "cannot get clock %s\n", "pclk_mac");
>
> - bsp_priv->clk_mac = devm_clk_get(dev, "stmmaceth");
> + bsp_priv->clk_mac = devm_clk_get_optional(dev, "stmmaceth");
> if (IS_ERR(bsp_priv->clk_mac))
> - dev_err(dev, "cannot get clock %s\n",
> - "stmmaceth");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->clk_mac),
> + "cannot get clock %s\n", "stmmaceth");
>
> if (bsp_priv->phy_iface == PHY_INTERFACE_MODE_RMII) {
> - bsp_priv->clk_mac_ref = devm_clk_get(dev, "clk_mac_ref");
> + bsp_priv->clk_mac_ref = devm_clk_get_optional(dev, "clk_mac_ref");
> if (IS_ERR(bsp_priv->clk_mac_ref))
> - dev_err(dev, "cannot get clock %s\n",
> - "clk_mac_ref");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->clk_mac_ref),
> + "cannot get clock %s\n", "clk_mac_ref");
>
> if (!bsp_priv->clock_input) {
> bsp_priv->clk_mac_refout =
> - devm_clk_get(dev, "clk_mac_refout");
> + devm_clk_get_optional(dev, "clk_mac_refout");
> if (IS_ERR(bsp_priv->clk_mac_refout))
> - dev_err(dev, "cannot get clock %s\n",
> - "clk_mac_refout");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->clk_mac_refout),
> + "cannot get clock %s\n", "clk_mac_refout");
> }
> }
>
> - bsp_priv->clk_mac_speed = devm_clk_get(dev, "clk_mac_speed");
> + bsp_priv->clk_mac_speed = devm_clk_get_optional(dev, "clk_mac_speed");
> if (IS_ERR(bsp_priv->clk_mac_speed))
> - dev_err(dev, "cannot get clock %s\n", "clk_mac_speed");
> + return dev_err_probe(dev, PTR_ERR(bsp_priv->clk_mac_speed),
> + "cannot get clock %s\n", "clk_mac_speed");
>
> if (bsp_priv->clock_input) {
> dev_info(dev, "clock input from PHY\n");
> --
> 2.39.2
>
next prev parent reply other threads:[~2023-03-17 18:24 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-17 17:42 [PATCHv1 0/2] Fix RK3588 error prints Sebastian Reichel
2023-03-17 17:42 ` [PATCHv1 1/2] net: ethernet: stmmac: dwmac-rk: fix optional clock handling Sebastian Reichel
2023-03-17 18:24 ` Piotr Raczynski [this message]
2023-03-17 20:04 ` Sebastian Reichel
2023-03-22 3:10 ` Jakub Kicinski
2023-03-17 17:42 ` [PATCHv1 2/2] net: ethernet: stmmac: dwmac-rk: fix optional phy regulator handling Sebastian Reichel
2023-03-17 18:16 ` Piotr Raczynski
2023-03-17 20:12 ` Sebastian Reichel
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=ZBSwX+eBsE02A3Xz@nimitz \
--to=piotr.raczynski@intel.com \
--cc=alexandre.torgue@foss.st.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=joabreu@synopsys.com \
--cc=kernel@collabora.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mcoquelin.stm32@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peppe.cavallaro@st.com \
--cc=sebastian.reichel@collabora.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.