[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fc8f35f8-ccc5-e847-e988-c4b882e53a44@gmail.com>
Date: Sat, 19 Mar 2022 18:50:25 +0300
From: Dmitry Osipenko <digetx@...il.com>
To: Ashish Mhetre <amhetre@...dia.com>,
krzysztof.kozlowski@...onical.com, robh+dt@...nel.org,
thierry.reding@...il.com, jonathanh@...dia.com,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
linux-tegra@...r.kernel.org
Cc: vdumpa@...dia.com, Snikam@...dia.com
Subject: Re: [Patch v5 2/4] memory: tegra: Add MC error logging on tegra186
onward
16.03.2022 12:25, Ashish Mhetre пишет:
> +irqreturn_t tegra30_mc_handle_irq(int irq, void *data)
> {
> struct tegra_mc *mc = data;
> unsigned long status;
> + bool mc_has_channels;
> unsigned int bit;
> + int channel;
unsigned int
> + mc_has_channels = mc->soc->num_channels && mc->soc->get_int_channel;
> + if (mc_has_channels) {
> + int err;
> +
> + err = mc->soc->get_int_channel(mc, &channel);
> + if (err < 0)
> + return IRQ_NONE;
> +
> + /* mask all interrupts to avoid flooding */
> + status = mc_ch_readl(mc, channel, MC_INTSTATUS) & mc->soc->intmask;
> + } else {
> + status = mc_readl(mc, MC_INTSTATUS) & mc->soc->intmask;
> + }
So if mc_has_channels=false, while it should be true, then you're going
to handle interrupt incorrectly?
Powered by blists - more mailing lists