diff options
author | Duy Nguyen <[email protected]> | 2022-07-04 16:46:11 +0900 |
---|---|---|
committer | Marc Kleine-Budde <[email protected]> | 2022-07-04 11:42:59 +0200 |
commit | 374e11f1bde91545674233459e5a0416ba842b69 (patch) | |
tree | 00a5ec48da2d9e8fc637d836ac114f4735777690 | |
parent | c6da4590fe819dfe28a4f8037a8dc1e056542fb4 (diff) |
can: rcar_canfd: Fix data transmission failed on R-Car V3U
On R-Car V3U, this driver should use suitable register offset instead of
other SoCs' one. Otherwise, data transmission failed on R-Car V3U.
Fixes: 45721c406dcf ("can: rcar_canfd: Add support for r8a779a0 SoC")
Link: https://lore.kernel.org/all/[email protected]
Reviewed-by: Geert Uytterhoeven <[email protected]>
Signed-off-by: Duy Nguyen <[email protected]>
Signed-off-by: Yoshihiro Shimoda <[email protected]>
Signed-off-by: Marc Kleine-Budde <[email protected]>
-rw-r--r-- | drivers/net/can/rcar/rcar_canfd.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/can/rcar/rcar_canfd.c b/drivers/net/can/rcar/rcar_canfd.c index 40a11445d021..ba42cef10a53 100644 --- a/drivers/net/can/rcar/rcar_canfd.c +++ b/drivers/net/can/rcar/rcar_canfd.c @@ -1332,7 +1332,10 @@ static void rcar_canfd_set_bittiming(struct net_device *dev) cfg = (RCANFD_DCFG_DTSEG1(gpriv, tseg1) | RCANFD_DCFG_DBRP(brp) | RCANFD_DCFG_DSJW(sjw) | RCANFD_DCFG_DTSEG2(gpriv, tseg2)); - rcar_canfd_write(priv->base, RCANFD_F_DCFG(ch), cfg); + if (is_v3u(gpriv)) + rcar_canfd_write(priv->base, RCANFD_V3U_DCFG(ch), cfg); + else + rcar_canfd_write(priv->base, RCANFD_F_DCFG(ch), cfg); netdev_dbg(priv->ndev, "drate: brp %u, sjw %u, tseg1 %u, tseg2 %u\n", brp, sjw, tseg1, tseg2); } else { |