soc/tegra: cbb: Check firewall before enabling error reporting
authorSumit Gupta <sumitg@nvidia.com>
Wed, 9 Nov 2022 13:57:17 +0000 (19:27 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:31:50 +0000 (13:31 +0100)
commit7d6370223db67b6dbe9c3fdd61d8f604845583f4
treedfa00bebca7ecd0b8165854b8f1830f0c0dced37
parentb75d11a62bb359777bcf6182aa234fe0c9d5bf39
soc/tegra: cbb: Check firewall before enabling error reporting

[ Upstream commit 2927cf85f4877f417f884919de8e04ab9b362d32 ]

To enable error reporting for a fabric to CCPLEX, we need to write its
register for enabling error interrupt to CCPLEX during boot and later
clear the error status register after error occurs. If a fabric's
registers are protected and not accessible from CCPLEX, then accessing
the registers will cause CBB firewall error.

Add support to check whether write access from CCPLEX to the registers
of a fabric is not blocked by it's firewall before enabling error
reporting to CCPLEX for that fabric.

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