Linux CAN drivers development
 help / color / mirror / Atom feed
* [PATCH v4 0/2] can: rcar_canfd: Add transceiver support
@ 2023-03-21 16:14 Geert Uytterhoeven
  2023-03-21 16:15 ` [PATCH v4 1/2] " Geert Uytterhoeven
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2023-03-21 16:14 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Vincent Mailhol
  Cc: linux-can, netdev, linux-renesas-soc, Geert Uytterhoeven

	Hi all,

This patch series adds transceiver support to the Renesas R-Car CAN-FD
driver, and improves the printing of error messages, as requested by
Vincent.

Originally, both patches were submitted separately, but as the latter
depends on the former, I absorbed it within this series for the resend.

Thanks!

Geert Uytterhoeven (2):
  can: rcar_canfd: Add transceiver support
  can: rcar_canfd: Improve error messages

 drivers/net/can/rcar/rcar_canfd.c | 71 ++++++++++++++++++++-----------
 1 file changed, 45 insertions(+), 26 deletions(-)

-- 
2.34.1

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v4 1/2] can: rcar_canfd: Add transceiver support
  2023-03-21 16:14 [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Geert Uytterhoeven
@ 2023-03-21 16:15 ` Geert Uytterhoeven
  2023-03-21 16:15 ` [PATCH v4 2/2] can: rcar_canfd: Improve error messages Geert Uytterhoeven
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2023-03-21 16:15 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Vincent Mailhol
  Cc: linux-can, netdev, linux-renesas-soc, Geert Uytterhoeven,
	Simon Horman

Add support for CAN transceivers described as PHYs.

While simple CAN transceivers can do without, this is needed for CAN
transceivers like NXP TJR1443 that need a configuration step (like
pulling standby or enable lines), and/or impose a bitrate limit.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
---
v3:
  - Add Reviewed-by,

v2:
  - Add Reviewed-by.
---
 drivers/net/can/rcar/rcar_canfd.c | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index ef4e1b9a9e1ee280..6df9a259e5e4f92c 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -35,6 +35,7 @@
 #include <linux/netdevice.h>
 #include <linux/of.h>
 #include <linux/of_device.h>
+#include <linux/phy/phy.h>
 #include <linux/platform_device.h>
 #include <linux/reset.h>
 #include <linux/types.h>
@@ -530,6 +531,7 @@ struct rcar_canfd_channel {
 	struct net_device *ndev;
 	struct rcar_canfd_global *gpriv;	/* Controller reference */
 	void __iomem *base;			/* Register base address */
+	struct phy *transceiver;		/* Optional transceiver */
 	struct napi_struct napi;
 	u32 tx_head;				/* Incremented on xmit */
 	u32 tx_tail;				/* Incremented on xmit done */
@@ -1413,11 +1415,17 @@ static int rcar_canfd_open(struct net_device *ndev)
 	struct rcar_canfd_global *gpriv = priv->gpriv;
 	int err;
 
+	err = phy_power_on(priv->transceiver);
+	if (err) {
+		netdev_err(ndev, "failed to power on PHY, error %d\n", err);
+		return err;
+	}
+
 	/* Peripheral clock is already enabled in probe */
 	err = clk_prepare_enable(gpriv->can_clk);
 	if (err) {
 		netdev_err(ndev, "failed to enable CAN clock, error %d\n", err);
-		goto out_clock;
+		goto out_phy;
 	}
 
 	err = open_candev(ndev);
@@ -1437,7 +1445,8 @@ static int rcar_canfd_open(struct net_device *ndev)
 	close_candev(ndev);
 out_can_clock:
 	clk_disable_unprepare(gpriv->can_clk);
-out_clock:
+out_phy:
+	phy_power_off(priv->transceiver);
 	return err;
 }
 
@@ -1480,6 +1489,7 @@ static int rcar_canfd_close(struct net_device *ndev)
 	napi_disable(&priv->napi);
 	clk_disable_unprepare(gpriv->can_clk);
 	close_candev(ndev);
+	phy_power_off(priv->transceiver);
 	return 0;
 }
 
@@ -1711,7 +1721,7 @@ static const struct ethtool_ops rcar_canfd_ethtool_ops = {
 };
 
 static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
-				    u32 fcan_freq)
+				    u32 fcan_freq, struct phy *transceiver)
 {
 	const struct rcar_canfd_hw_info *info = gpriv->info;
 	struct platform_device *pdev = gpriv->pdev;
@@ -1732,8 +1742,11 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 	ndev->flags |= IFF_ECHO;
 	priv->ndev = ndev;
 	priv->base = gpriv->base;
+	priv->transceiver = transceiver;
 	priv->channel = ch;
 	priv->gpriv = gpriv;
+	if (transceiver)
+		priv->can.bitrate_max = transceiver->attrs.max_link_rate;
 	priv->can.clock.freq = fcan_freq;
 	dev_info(dev, "can_clk rate is %u\n", priv->can.clock.freq);
 
@@ -1836,6 +1849,7 @@ static void rcar_canfd_channel_remove(struct rcar_canfd_global *gpriv, u32 ch)
 
 static int rcar_canfd_probe(struct platform_device *pdev)
 {
+	struct phy *transceivers[RCANFD_NUM_CHANNELS] = { 0, };
 	const struct rcar_canfd_hw_info *info;
 	struct device *dev = &pdev->dev;
 	void __iomem *addr;
@@ -1857,9 +1871,14 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 	for (i = 0; i < info->max_channels; ++i) {
 		name[7] = '0' + i;
 		of_child = of_get_child_by_name(dev->of_node, name);
-		if (of_child && of_device_is_available(of_child))
+		if (of_child && of_device_is_available(of_child)) {
 			channels_mask |= BIT(i);
+			transceivers[i] = devm_of_phy_optional_get(dev,
+							of_child, NULL);
+		}
 		of_node_put(of_child);
+		if (IS_ERR(transceivers[i]))
+			return PTR_ERR(transceivers[i]);
 	}
 
 	if (info->shared_global_irqs) {
@@ -2035,7 +2054,8 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 	}
 
 	for_each_set_bit(ch, &gpriv->channels_mask, info->max_channels) {
-		err = rcar_canfd_channel_probe(gpriv, ch, fcan_freq);
+		err = rcar_canfd_channel_probe(gpriv, ch, fcan_freq,
+					       transceivers[ch]);
 		if (err)
 			goto fail_channel;
 	}
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v4 2/2] can: rcar_canfd: Improve error messages
  2023-03-21 16:14 [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Geert Uytterhoeven
  2023-03-21 16:15 ` [PATCH v4 1/2] " Geert Uytterhoeven
@ 2023-03-21 16:15 ` Geert Uytterhoeven
  2023-03-22  9:42   ` Vincent MAILHOL
  2023-03-22  8:34 ` [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Marc Kleine-Budde
  2023-03-24 14:57 ` Marc Kleine-Budde
  3 siblings, 1 reply; 7+ messages in thread
From: Geert Uytterhoeven @ 2023-03-21 16:15 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Vincent Mailhol
  Cc: linux-can, netdev, linux-renesas-soc, Geert Uytterhoeven,
	Simon Horman

Improve printed error messages:
  - Replace numerical error codes by mnemotechnic error codes, to
    improve the user experience in case of errors,
  - Drop parentheses around printed numbers, cfr.
    Documentation/process/coding-style.rst,
  - Drop printing of an error message in case of out-of-memory, as the
    core memory allocation code already takes care of this.

Suggested-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
---
v4:
  - Reviewed-by: Simon Horman <simon.horman@corigine.com>,

v3:
  - Add missing SoB,

v2:
  - This is v2 of "[PATCH] can: rcar_canfd: Print mnemotechnic error
    codes".  I haven't added any tags given on v1, as half of the
    printed message changed.
---
 drivers/net/can/rcar/rcar_canfd.c | 43 +++++++++++++++----------------
 1 file changed, 21 insertions(+), 22 deletions(-)

diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
index 6df9a259e5e4f92c..ecdb8ffe2f670c9b 100644
--- a/drivers/net/can/rcar/rcar_canfd.c
+++ b/drivers/net/can/rcar/rcar_canfd.c
@@ -1417,20 +1417,20 @@ static int rcar_canfd_open(struct net_device *ndev)
 
 	err = phy_power_on(priv->transceiver);
 	if (err) {
-		netdev_err(ndev, "failed to power on PHY, error %d\n", err);
+		netdev_err(ndev, "failed to power on PHY, %pe\n", ERR_PTR(err));
 		return err;
 	}
 
 	/* Peripheral clock is already enabled in probe */
 	err = clk_prepare_enable(gpriv->can_clk);
 	if (err) {
-		netdev_err(ndev, "failed to enable CAN clock, error %d\n", err);
+		netdev_err(ndev, "failed to enable CAN clock, %pe\n", ERR_PTR(err));
 		goto out_phy;
 	}
 
 	err = open_candev(ndev);
 	if (err) {
-		netdev_err(ndev, "open_candev() failed, error %d\n", err);
+		netdev_err(ndev, "open_candev() failed, %pe\n", ERR_PTR(err));
 		goto out_can_clock;
 	}
 
@@ -1731,10 +1731,9 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 	int err = -ENODEV;
 
 	ndev = alloc_candev(sizeof(*priv), RCANFD_FIFO_DEPTH);
-	if (!ndev) {
-		dev_err(dev, "alloc_candev() failed\n");
+	if (!ndev)
 		return -ENOMEM;
-	}
+
 	priv = netdev_priv(ndev);
 
 	ndev->netdev_ops = &rcar_canfd_netdev_ops;
@@ -1777,8 +1776,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 				       rcar_canfd_channel_err_interrupt, 0,
 				       irq_name, priv);
 		if (err) {
-			dev_err(dev, "devm_request_irq CH Err(%d) failed, error %d\n",
-				err_irq, err);
+			dev_err(dev, "devm_request_irq CH Err %d failed, %pe\n",
+				err_irq, ERR_PTR(err));
 			goto fail;
 		}
 		irq_name = devm_kasprintf(dev, GFP_KERNEL, "canfd.ch%d_trx",
@@ -1791,8 +1790,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 				       rcar_canfd_channel_tx_interrupt, 0,
 				       irq_name, priv);
 		if (err) {
-			dev_err(dev, "devm_request_irq Tx (%d) failed, error %d\n",
-				tx_irq, err);
+			dev_err(dev, "devm_request_irq Tx %d failed, %pe\n",
+				tx_irq, ERR_PTR(err));
 			goto fail;
 		}
 	}
@@ -1823,7 +1822,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
 	gpriv->ch[priv->channel] = priv;
 	err = register_candev(ndev);
 	if (err) {
-		dev_err(dev, "register_candev() failed, error %d\n", err);
+		dev_err(dev, "register_candev() failed, %pe\n", ERR_PTR(err));
 		goto fail_candev;
 	}
 	dev_info(dev, "device registered (channel %u)\n", priv->channel);
@@ -1967,16 +1966,16 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 				       rcar_canfd_channel_interrupt, 0,
 				       "canfd.ch_int", gpriv);
 		if (err) {
-			dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
-				ch_irq, err);
+			dev_err(dev, "devm_request_irq %d failed, %pe\n",
+				ch_irq, ERR_PTR(err));
 			goto fail_dev;
 		}
 
 		err = devm_request_irq(dev, g_irq, rcar_canfd_global_interrupt,
 				       0, "canfd.g_int", gpriv);
 		if (err) {
-			dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
-				g_irq, err);
+			dev_err(dev, "devm_request_irq %d failed, %pe\n",
+				g_irq, ERR_PTR(err));
 			goto fail_dev;
 		}
 	} else {
@@ -1985,8 +1984,8 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 				       "canfd.g_recc", gpriv);
 
 		if (err) {
-			dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
-				g_recc_irq, err);
+			dev_err(dev, "devm_request_irq %d failed, %pe\n",
+				g_recc_irq, ERR_PTR(err));
 			goto fail_dev;
 		}
 
@@ -1994,8 +1993,8 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 				       rcar_canfd_global_err_interrupt, 0,
 				       "canfd.g_err", gpriv);
 		if (err) {
-			dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
-				g_err_irq, err);
+			dev_err(dev, "devm_request_irq %d failed, %pe\n",
+				g_err_irq, ERR_PTR(err));
 			goto fail_dev;
 		}
 	}
@@ -2012,14 +2011,14 @@ static int rcar_canfd_probe(struct platform_device *pdev)
 	/* Enable peripheral clock for register access */
 	err = clk_prepare_enable(gpriv->clkp);
 	if (err) {
-		dev_err(dev, "failed to enable peripheral clock, error %d\n",
-			err);
+		dev_err(dev, "failed to enable peripheral clock, %pe\n",
+			ERR_PTR(err));
 		goto fail_reset;
 	}
 
 	err = rcar_canfd_reset_controller(gpriv);
 	if (err) {
-		dev_err(dev, "reset controller failed\n");
+		dev_err(dev, "reset controller failed, %pe\n", ERR_PTR(err));
 		goto fail_clk;
 	}
 
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 0/2] can: rcar_canfd: Add transceiver support
  2023-03-21 16:14 [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Geert Uytterhoeven
  2023-03-21 16:15 ` [PATCH v4 1/2] " Geert Uytterhoeven
  2023-03-21 16:15 ` [PATCH v4 2/2] can: rcar_canfd: Improve error messages Geert Uytterhoeven
@ 2023-03-22  8:34 ` Marc Kleine-Budde
  2023-03-24 14:57 ` Marc Kleine-Budde
  3 siblings, 0 replies; 7+ messages in thread
From: Marc Kleine-Budde @ 2023-03-22  8:34 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Wolfgang Grandegger, Vincent Mailhol, linux-can, netdev,
	linux-renesas-soc

[-- Attachment #1: Type: text/plain, Size: 775 bytes --]

On 21.03.2023 17:14:59, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> This patch series adds transceiver support to the Renesas R-Car CAN-FD
> driver, and improves the printing of error messages, as requested by
> Vincent.
> 
> Originally, both patches were submitted separately, but as the latter
> depends on the former, I absorbed it within this series for the resend.

Applied to linux-can-next. I've squashed the improved error message for
the phy_power_on() into patch 1.

Thanks,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung Nürnberg              | Phone: +49-5121-206917-129  |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 2/2] can: rcar_canfd: Improve error messages
  2023-03-21 16:15 ` [PATCH v4 2/2] can: rcar_canfd: Improve error messages Geert Uytterhoeven
@ 2023-03-22  9:42   ` Vincent MAILHOL
  0 siblings, 0 replies; 7+ messages in thread
From: Vincent MAILHOL @ 2023-03-22  9:42 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Wolfgang Grandegger, Marc Kleine-Budde, linux-can, netdev,
	linux-renesas-soc, Simon Horman

On Wed. 22 Mar 2023 à 01:26, Geert Uytterhoeven <geert+renesas@glider.be> wrote:
> Improve printed error messages:
>   - Replace numerical error codes by mnemotechnic error codes, to
>     improve the user experience in case of errors,
>   - Drop parentheses around printed numbers, cfr.
>     Documentation/process/coding-style.rst,
>   - Drop printing of an error message in case of out-of-memory, as the
>     core memory allocation code already takes care of this.
>
> Suggested-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> Reviewed-by: Simon Horman <simon.horman@corigine.com>

I added a nitpick. If you prefer to keep as-is, OK for me.

Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr>

> ---
> v4:
>   - Reviewed-by: Simon Horman <simon.horman@corigine.com>,
>
> v3:
>   - Add missing SoB,
>
> v2:
>   - This is v2 of "[PATCH] can: rcar_canfd: Print mnemotechnic error
>     codes".  I haven't added any tags given on v1, as half of the
>     printed message changed.
> ---
>  drivers/net/can/rcar/rcar_canfd.c | 43 +++++++++++++++----------------
>  1 file changed, 21 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c
> index 6df9a259e5e4f92c..ecdb8ffe2f670c9b 100644
> --- a/drivers/net/can/rcar/rcar_canfd.c
> +++ b/drivers/net/can/rcar/rcar_canfd.c
> @@ -1417,20 +1417,20 @@ static int rcar_canfd_open(struct net_device *ndev)
>
>         err = phy_power_on(priv->transceiver);
>         if (err) {
> -               netdev_err(ndev, "failed to power on PHY, error %d\n", err);
> +               netdev_err(ndev, "failed to power on PHY, %pe\n", ERR_PTR(err));
                                                          ^

Nitpick, consider a colon instead of the coma:

                 netdev_err(ndev, "failed to power on PHY: %pe\n",
ERR_PTR(err));

N.B. This is more a personal preference than an official Linux style.
If you prefer the coma, you can ignore my nitpick and keep it as it is
:)

>                 return err;
>         }
>
>         /* Peripheral clock is already enabled in probe */
>         err = clk_prepare_enable(gpriv->can_clk);
>         if (err) {
> -               netdev_err(ndev, "failed to enable CAN clock, error %d\n", err);
> +               netdev_err(ndev, "failed to enable CAN clock, %pe\n", ERR_PTR(err));
>                 goto out_phy;
>         }
>
>         err = open_candev(ndev);
>         if (err) {
> -               netdev_err(ndev, "open_candev() failed, error %d\n", err);
> +               netdev_err(ndev, "open_candev() failed, %pe\n", ERR_PTR(err));
>                 goto out_can_clock;
>         }
>
> @@ -1731,10 +1731,9 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
>         int err = -ENODEV;
>
>         ndev = alloc_candev(sizeof(*priv), RCANFD_FIFO_DEPTH);
> -       if (!ndev) {
> -               dev_err(dev, "alloc_candev() failed\n");
> +       if (!ndev)
>                 return -ENOMEM;
> -       }
> +
>         priv = netdev_priv(ndev);
>
>         ndev->netdev_ops = &rcar_canfd_netdev_ops;
> @@ -1777,8 +1776,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
>                                        rcar_canfd_channel_err_interrupt, 0,
>                                        irq_name, priv);
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq CH Err(%d) failed, error %d\n",
> -                               err_irq, err);
> +                       dev_err(dev, "devm_request_irq CH Err %d failed, %pe\n",
> +                               err_irq, ERR_PTR(err));
>                         goto fail;
>                 }
>                 irq_name = devm_kasprintf(dev, GFP_KERNEL, "canfd.ch%d_trx",
> @@ -1791,8 +1790,8 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
>                                        rcar_canfd_channel_tx_interrupt, 0,
>                                        irq_name, priv);
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq Tx (%d) failed, error %d\n",
> -                               tx_irq, err);
> +                       dev_err(dev, "devm_request_irq Tx %d failed, %pe\n",
> +                               tx_irq, ERR_PTR(err));
>                         goto fail;
>                 }
>         }
> @@ -1823,7 +1822,7 @@ static int rcar_canfd_channel_probe(struct rcar_canfd_global *gpriv, u32 ch,
>         gpriv->ch[priv->channel] = priv;
>         err = register_candev(ndev);
>         if (err) {
> -               dev_err(dev, "register_candev() failed, error %d\n", err);
> +               dev_err(dev, "register_candev() failed, %pe\n", ERR_PTR(err));
>                 goto fail_candev;
>         }
>         dev_info(dev, "device registered (channel %u)\n", priv->channel);
> @@ -1967,16 +1966,16 @@ static int rcar_canfd_probe(struct platform_device *pdev)
>                                        rcar_canfd_channel_interrupt, 0,
>                                        "canfd.ch_int", gpriv);
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
> -                               ch_irq, err);
> +                       dev_err(dev, "devm_request_irq %d failed, %pe\n",
> +                               ch_irq, ERR_PTR(err));
>                         goto fail_dev;
>                 }
>
>                 err = devm_request_irq(dev, g_irq, rcar_canfd_global_interrupt,
>                                        0, "canfd.g_int", gpriv);
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
> -                               g_irq, err);
> +                       dev_err(dev, "devm_request_irq %d failed, %pe\n",
> +                               g_irq, ERR_PTR(err));
>                         goto fail_dev;
>                 }
>         } else {
> @@ -1985,8 +1984,8 @@ static int rcar_canfd_probe(struct platform_device *pdev)
>                                        "canfd.g_recc", gpriv);
>
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
> -                               g_recc_irq, err);
> +                       dev_err(dev, "devm_request_irq %d failed, %pe\n",
> +                               g_recc_irq, ERR_PTR(err));
>                         goto fail_dev;
>                 }
>
> @@ -1994,8 +1993,8 @@ static int rcar_canfd_probe(struct platform_device *pdev)
>                                        rcar_canfd_global_err_interrupt, 0,
>                                        "canfd.g_err", gpriv);
>                 if (err) {
> -                       dev_err(dev, "devm_request_irq(%d) failed, error %d\n",
> -                               g_err_irq, err);
> +                       dev_err(dev, "devm_request_irq %d failed, %pe\n",
> +                               g_err_irq, ERR_PTR(err));
>                         goto fail_dev;
>                 }
>         }
> @@ -2012,14 +2011,14 @@ static int rcar_canfd_probe(struct platform_device *pdev)
>         /* Enable peripheral clock for register access */
>         err = clk_prepare_enable(gpriv->clkp);
>         if (err) {
> -               dev_err(dev, "failed to enable peripheral clock, error %d\n",
> -                       err);
> +               dev_err(dev, "failed to enable peripheral clock, %pe\n",
> +                       ERR_PTR(err));
>                 goto fail_reset;
>         }
>
>         err = rcar_canfd_reset_controller(gpriv);
>         if (err) {
> -               dev_err(dev, "reset controller failed\n");
> +               dev_err(dev, "reset controller failed, %pe\n", ERR_PTR(err));
>                 goto fail_clk;
>         }
>
> --
> 2.34.1
>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 0/2] can: rcar_canfd: Add transceiver support
  2023-03-21 16:14 [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Geert Uytterhoeven
                   ` (2 preceding siblings ...)
  2023-03-22  8:34 ` [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Marc Kleine-Budde
@ 2023-03-24 14:57 ` Marc Kleine-Budde
  2023-03-24 15:08   ` Geert Uytterhoeven
  3 siblings, 1 reply; 7+ messages in thread
From: Marc Kleine-Budde @ 2023-03-24 14:57 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Wolfgang Grandegger, Vincent Mailhol, linux-can, netdev,
	linux-renesas-soc

[-- Attachment #1: Type: text/plain, Size: 747 bytes --]

On 21.03.2023 17:14:59, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> This patch series adds transceiver support to the Renesas R-Car CAN-FD
> driver, and improves the printing of error messages, as requested by
> Vincent.
> 
> Originally, both patches were submitted separately, but as the latter
> depends on the former, I absorbed it within this series for the resend.

Thanks. Applied to can-next, I've replaced the colons by comma, as
Vincent suggested.

Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung Nürnberg              | Phone: +49-5121-206917-129  |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v4 0/2] can: rcar_canfd: Add transceiver support
  2023-03-24 14:57 ` Marc Kleine-Budde
@ 2023-03-24 15:08   ` Geert Uytterhoeven
  0 siblings, 0 replies; 7+ messages in thread
From: Geert Uytterhoeven @ 2023-03-24 15:08 UTC (permalink / raw)
  To: Marc Kleine-Budde
  Cc: Wolfgang Grandegger, Vincent Mailhol, linux-can, netdev,
	linux-renesas-soc

Hi Marc,

On Fri, Mar 24, 2023 at 4:00 PM Marc Kleine-Budde <mkl@pengutronix.de> wrote:
> On 21.03.2023 17:14:59, Geert Uytterhoeven wrote:
> > This patch series adds transceiver support to the Renesas R-Car CAN-FD
> > driver, and improves the printing of error messages, as requested by
> > Vincent.
> >
> > Originally, both patches were submitted separately, but as the latter
> > depends on the former, I absorbed it within this series for the resend.
>
> Thanks. Applied to can-next, I've replaced the colons by comma, as
> Vincent suggested.

Thanks a lot!

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-03-24 15:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-21 16:14 [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Geert Uytterhoeven
2023-03-21 16:15 ` [PATCH v4 1/2] " Geert Uytterhoeven
2023-03-21 16:15 ` [PATCH v4 2/2] can: rcar_canfd: Improve error messages Geert Uytterhoeven
2023-03-22  9:42   ` Vincent MAILHOL
2023-03-22  8:34 ` [PATCH v4 0/2] can: rcar_canfd: Add transceiver support Marc Kleine-Budde
2023-03-24 14:57 ` Marc Kleine-Budde
2023-03-24 15:08   ` Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox