]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
soc/tegra: cbb: Clear ERR_FORCE register with ERR_STATUS
authorSumit Gupta <sumitg@nvidia.com>
Thu, 3 Jul 2025 10:38:22 +0000 (16:08 +0530)
committerThierry Reding <treding@nvidia.com>
Wed, 9 Jul 2025 12:26:03 +0000 (14:26 +0200)
When error is injected with the ERR_FORCE register, then this register
is not auto cleared on clearing the ERR_STATUS register. This causes
repeated interrupts on error injection. To fix, set the ERR_FORCE to
zero along with clearing the ERR_STATUS register after handling error.

Fixes: fc2f151d2314 ("soc/tegra: cbb: Add driver for Tegra234 CBB 2.0")
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/cbb/tegra234-cbb.c

index c74629af9bb5d011fcea34b2be8eb78b49f3e577..1da31ead2b5ebceb78927eaccf41bd07f2dcbac6 100644 (file)
@@ -185,6 +185,8 @@ static void tegra234_cbb_error_clear(struct tegra_cbb *cbb)
 {
        struct tegra234_cbb *priv = to_tegra234_cbb(cbb);
 
+       writel(0, priv->mon + FABRIC_MN_MASTER_ERR_FORCE_0);
+
        writel(0x3f, priv->mon + FABRIC_MN_MASTER_ERR_STATUS_0);
        dsb(sy);
 }