]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
can: rockchip_canfd: rkcanfd_register_done(): add warning for erratum 5
authorMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 12 Dec 2023 12:57:55 +0000 (13:57 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 4 Sep 2024 12:41:52 +0000 (14:41 +0200)
Tests on the rk3568v2 and rk3568v3 show that a reduced "baudclk" (e.g.
80MHz, compared to the standard 300MHz) significantly increases the
possibility of incorrect FIFO counters, i.e. erratum 5.

Print an info message if the clock is below the known good value of
300MHz.

Tested-by: Alibek Omarov <a1ba.omarov@gmail.com>
Acked-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patch.msgid.link/20240904-rockchip-canfd-v5-10-8ae22bcb27cc@pengutronix.de
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/rockchip/rockchip_canfd-core.c

index 40911bb636232fafd63251a8d0e7627560f49185..d6c0f2fe8d2bd9a035be605f8bfc285590567aec 100644 (file)
@@ -738,6 +738,13 @@ static void rkcanfd_register_done(const struct rkcanfd_priv *priv)
                    FIELD_GET(RKCANFD_REG_RTL_VERSION_MAJOR, dev_id),
                    FIELD_GET(RKCANFD_REG_RTL_VERSION_MINOR, dev_id),
                    priv->devtype_data.quirks);
+
+       if (priv->devtype_data.quirks & RKCANFD_QUIRK_RK3568_ERRATUM_5 &&
+           priv->can.clock.freq < RKCANFD_ERRATUM_5_SYSCLOCK_HZ_MIN)
+               netdev_info(priv->ndev,
+                           "Erratum 5: CAN clock frequency (%luMHz) lower than known good (%luMHz), expect degraded performance\n",
+                           priv->can.clock.freq / MEGA,
+                           RKCANFD_ERRATUM_5_SYSCLOCK_HZ_MIN / MEGA);
 }
 
 static int rkcanfd_register(struct rkcanfd_priv *priv)