diff --git a/drivers/memory/tegra30-mc.c b/drivers/memory/tegra30-mc.c index c9821258117a..ec9fc7894801 100644 --- a/drivers/memory/tegra30-mc.c +++ b/drivers/memory/tegra30-mc.c @@ -91,18 +91,18 @@ struct tegra30_mc { static inline u32 mc_readl(struct tegra30_mc *mc, u32 offs) { + u32 val = 0; + if (offs < 0x10) - return readl(mc->regs[0] + offs); - BUG_ON(offs < 0x3c); + val = readl(mc->regs[0] + offs); if (offs < 0x1f0) - return readl(mc->regs[1] + offs - 0x3c); - BUG_ON(offs < 0x200); + val = readl(mc->regs[1] + offs - 0x3c); if (offs < 0x228) - return readl(mc->regs[2] + offs - 0x200); - BUG_ON(offs < 0x284); + val = readl(mc->regs[2] + offs - 0x200); if (offs < 0x400) - return readl(mc->regs[3] + offs - 0x284); - BUG(); + val = readl(mc->regs[3] + offs - 0x284); + + return val; } static inline void mc_writel(struct tegra30_mc *mc, u32 val, u32 offs) @@ -111,22 +111,18 @@ static inline void mc_writel(struct tegra30_mc *mc, u32 val, u32 offs) writel(val, mc->regs[0] + offs); return; } - BUG_ON(offs < 0x3c); if (offs < 0x1f0) { writel(val, mc->regs[1] + offs - 0x3c); return; } - BUG_ON(offs < 0x200); if (offs < 0x228) { writel(val, mc->regs[2] + offs - 0x200); return; } - BUG_ON(offs < 0x284); if (offs < 0x400) { writel(val, mc->regs[3] + offs - 0x284); return; } - BUG(); } static const char * const tegra30_mc_client[] = {