Re: [Patch v5 2/4] memory: tegra: Add MC error logging on tegra186 onward

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 3/20/2022 6:23 PM, Dmitry Osipenko wrote:
External email: Use caution opening links or attachments


16.03.2022 12:25, Ashish Mhetre пишет:
+static int tegra186_mc_get_channel(const struct tegra_mc *mc, int *mc_channel)
+{
+     u32 status;
+
+     status = mc_ch_readl(mc, MC_BROADCAST_CHANNEL, MC_GLOBAL_INTSTATUS);
+
+     switch (status & mc->soc->int_channel_mask) {
+     case BIT(0):
+             *mc_channel = 0;
+             break;
+
+     case BIT(1):
+             *mc_channel = 1;
+             break;
+
+     case BIT(2):
+             *mc_channel = 2;
+             break;
+
+     case BIT(3):
+             *mc_channel = 3;
+             break;

This won't work if multiple bits are set at once.

I talked with our HW team and they said that it's technically possible
that interrupts can come at multiple channels at same time. SW can take
care of this by logging interrupts at first channel and then clearing
bit of that. Then take care of interrupts from next channel and so on.
I'll update the patches accordingly in next version.



[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux