NVIDIA: SAUCE: mailbox: tegra-hsp: Do not clear interrupt routing at probe
HSP interrupts are shared across firmware & OS. Currently, if a firmware configures interrupt routing before kernel boots, the tegra-hsp driver can clear that routing if the same shared interrupt is assigned to Linux. This disables the interrupts for that firmware. Bug 4774805 Change-Id: Icd819a31398ab53f8e915b9b2ef1ffd234972eb3 Signed-off-by: Hiteshkumar Patel <hiteshkumarg@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/3rdparty/canonical/linux-noble/+/3483088 Reviewed-by: Kartik Rajput <kkartik@nvidia.com> Reviewed-by: Bibek Basu <bbasu@nvidia.com> GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
fc8056e062
commit
cc660d12b9
@@ -1,6 +1,6 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2016-2024, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2016-2025, NVIDIA CORPORATION. All rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
@@ -835,7 +835,6 @@ static int tegra_hsp_request_shared_irq(struct tegra_hsp *hsp)
|
|||||||
{
|
{
|
||||||
unsigned int i, irq = 0;
|
unsigned int i, irq = 0;
|
||||||
unsigned int default_si = hsp->num_si;
|
unsigned int default_si = hsp->num_si;
|
||||||
unsigned int value;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
for (i = 0; i < hsp->num_si; i++) {
|
for (i = 0; i < hsp->num_si; i++) {
|
||||||
@@ -853,13 +852,6 @@ static int tegra_hsp_request_shared_irq(struct tegra_hsp *hsp)
|
|||||||
|
|
||||||
hsp->shared_irqs[i].enabled = true;
|
hsp->shared_irqs[i].enabled = true;
|
||||||
|
|
||||||
value = tegra_hsp_readl(hsp, HSP_INT_IE(i));
|
|
||||||
if (value && !hsp->soc->virtualized) {
|
|
||||||
dev_warn(hsp->dev,
|
|
||||||
"disabling interrupts for si: %d\n", i);
|
|
||||||
tegra_hsp_writel(hsp, 0, HSP_INT_IE(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Use first available interrupt as default. */
|
/* Use first available interrupt as default. */
|
||||||
if (default_si == hsp->num_si)
|
if (default_si == hsp->num_si)
|
||||||
default_si = i;
|
default_si = i;
|
||||||
|
|||||||
Reference in New Issue
Block a user