[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180427093435.GB30388@ulmo>
Date: Fri, 27 Apr 2018 11:34:35 +0200
From: Thierry Reding <thierry.reding@...il.com>
To: Dmitry Osipenko <digetx@...il.com>
Cc: Jonathan Hunter <jonathanh@...dia.com>,
Rob Herring <robh+dt@...nel.org>, devicetree@...r.kernel.org,
linux-tegra@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v4 09/15] memory: tegra: Squash tegra20-mc into common
tegra-mc driver
On Mon, Apr 09, 2018 at 10:28:31PM +0300, Dmitry Osipenko wrote:
[...]
> diff --git a/drivers/memory/tegra/mc.c b/drivers/memory/tegra/mc.c
[...]
> +#define MC_GART_ERROR_REQ 0x30
> +#define MC_DECERR_EMEM_OTHERS_STATUS 0x58
> +#define MC_SECURITY_VIOLATION_STATUS 0x74
[...]
> diff --git a/drivers/memory/tegra/mc.h b/drivers/memory/tegra/mc.h
[...]
> @@ -21,19 +21,30 @@
> #define MC_INT_INVALID_SMMU_PAGE (1 << 10)
> #define MC_INT_ARBITRATION_EMEM (1 << 9)
> #define MC_INT_SECURITY_VIOLATION (1 << 8)
> +#define MC_INT_INVALID_GART_PAGE (1 << 7)
> #define MC_INT_DECERR_EMEM (1 << 6)
>
> static inline u32 mc_readl(struct tegra_mc *mc, unsigned long offset)
> {
> + if (mc->regs2 && offset >= 0x24)
> + return readl(mc->regs2 + offset - 0x3c);
I'm still not sure how this is supposed to work. If we pass in
MC_GART_ERROR_REQ as offset into mc_readl(), then the condition above
will be true (0x30 >= 0x24) but then the new offset will be computed
and we end up with:
return readl(mc->regs2 + 0x30 - 0x3c);
which means we'll be adding a negative offset (or rather a very large
offset because it will wrap around).
Thierry
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists