]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:13:36 +0000 (12:13 +0200)
[ Upstream commit a0647bca8966db04b79af72851ebd04224a4da40 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/tegra/cbb/tegra234-cbb.c

index 5cf0e8c341644c57f2e79f5108f9b0995100125a..e8cc46874c7297e888103644e669e60425a4a227 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);
 }