* [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 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 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 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