From patchwork Fri Aug 30 19:26:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Kleine-Budde X-Patchwork-Id: 13785452 X-Patchwork-Delegate: kuba@kernel.org Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEB9C1BD50F for ; Fri, 30 Aug 2024 19:27:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725046031; cv=none; b=Qri7YVhtZV7rkbCExu74ZwrWtffsgiEPl/MHyMvoPQa/sB1kCRcY08x/zkT/xs8+rayz9E7iOPx1GhYcZcDE1b886BZWlDUzbVyc8qlkNICOr5tRXYPbssCrNqSWfqgjd/fuHqYu6qWj0yVVzcZMTmrcvrhdReVEBqspbQ7YHJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1725046031; c=relaxed/simple; bh=y0d1r7AKHz0UNb79ePpfEEpNKI/dMUqJeszbCY2XjeA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lZvtAUcMMQ0qubScud98AkqsLFLS4hreDhsqlZaGeUWIHiGNDfiViXAMIchAw4qmu2xZuS4inNp+iFF4XuMq0yh3DiqufMQpHq/2LuplLcwu3EvBOS7T1ZO7GjOh2amO6vng6WcfOc4P7IjkVuQJFnB2YoN6x/nQ6C4KP8ebu5w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sk7Gy-0006KD-Qr for netdev@vger.kernel.org; Fri, 30 Aug 2024 21:27:04 +0200 Received: from [2a0a:edc0:0:b01:1d::7b] (helo=bjornoya.blackshift.org) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sk7Gq-004DpB-Ni for netdev@vger.kernel.org; Fri, 30 Aug 2024 21:26:56 +0200 Received: from dspam.blackshift.org (localhost [127.0.0.1]) by bjornoya.blackshift.org (Postfix) with SMTP id 5A81C32E23E for ; Fri, 30 Aug 2024 19:26:56 +0000 (UTC) Received: from hardanger.blackshift.org (unknown [172.20.34.65]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by bjornoya.blackshift.org (Postfix) with ESMTPS id 07AA132E107; Fri, 30 Aug 2024 19:26:47 +0000 (UTC) Received: from [172.20.34.65] (localhost [::1]) by hardanger.blackshift.org (OpenSMTPD) with ESMTP id a697fdc8; Fri, 30 Aug 2024 19:26:45 +0000 (UTC) From: Marc Kleine-Budde Date: Fri, 30 Aug 2024 21:26:07 +0200 Subject: [PATCH can-next v3 10/20] can: rockchip_canfd: rkcanfd_register_done(): add warning for erratum 5 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240830-rockchip-canfd-v3-10-d426266453fa@pengutronix.de> References: <20240830-rockchip-canfd-v3-0-d426266453fa@pengutronix.de> In-Reply-To: <20240830-rockchip-canfd-v3-0-d426266453fa@pengutronix.de> To: kernel@pengutronix.de, Vincent Mailhol , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Philipp Zabel , Elaine Zhang , David Jander Cc: Simon Horman , linux-can@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Marc Kleine-Budde X-Mailer: b4 0.15-dev-99b12 X-Developer-Signature: v=1; a=openpgp-sha256; l=1385; i=mkl@pengutronix.de; h=from:subject:message-id; bh=y0d1r7AKHz0UNb79ePpfEEpNKI/dMUqJeszbCY2XjeA=; b=owGbwMvMwMWoYbHIrkp3Tz7jabUkhrRLMk9WSnI6zdqm+rqubaJv0Hpum/wXK/fkxl9rrD/3x C1yxVvjTkZjFgZGLgZZMUWWAIddbQ+2sdzV3GMXDzOIlQlkCgMXpwBMpHIBB8MUlfxqvebQibof HCpOrjyp1xLP+rfNSWaNuZ7wI0VvhoQYZ3/+u/flZjR4Giqr6H/mYNV9uCxpPUfX7unP/kRz71V /oLHil2p19UP78sJe3Sm3w6XNl71wteHXbixoTjurdE9xUeDKQ3y3nv0XXNKf8V5eYOL6KK8VV2 Q1nZ/d+P5OYHl6llNR5E/j6fNWNzw6I8i7ZMLmq3HGs89Jt4ctKL7Gtshc/1P+gfB2/cw/j2TUc 28orzBQuhp9XEJie8HnWhUHc76zYlWZmwwjVu6sXr6vZX8H8wO5FYFvb6vU/a5NMDHRjDu+7mXu xSldAYnpq4xrOi17fI+8Weci8/6LxZUIZWPDRu/I633vAQ== X-Developer-Key: i=mkl@pengutronix.de; a=openpgp; fpr=C1400BA0B3989E6FBC7D5B5C2B5EE211C58AEA54 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: mkl@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org 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. Signed-off-by: Marc Kleine-Budde --- drivers/net/can/rockchip/rockchip_canfd-core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/net/can/rockchip/rockchip_canfd-core.c b/drivers/net/can/rockchip/rockchip_canfd-core.c index 40911bb63623..d6c0f2fe8d2b 100644 --- a/drivers/net/can/rockchip/rockchip_canfd-core.c +++ b/drivers/net/can/rockchip/rockchip_canfd-core.c @@ -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)