diff options
author | Jens Kuske <jenskuske@gmail.com> | 2016-01-27 08:51:13 -0500 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@free-electrons.com> | 2016-01-27 14:29:20 -0500 |
commit | febe6569fae4b5e663f0a31d9dbf054d3b588ff5 (patch) | |
tree | 3f150a24986bb67877d36c6bb5a22b4a1037470d | |
parent | 2d3e8f70317cc6df93465e51f451d41bad32e010 (diff) |
drivers: soc: sunxi: Fix mask generation for SRAM mapping
GENMASK is inclusive on both ends, therefor one has to be
subtracted from the width.
Also fixes the mask for debug output.
Signed-off-by: Jens Kuske <jenskuske@gmail.com>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
-rw-r--r-- | drivers/soc/sunxi/sunxi_sram.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c index bc52670c8f4b..99e354c8f53f 100644 --- a/drivers/soc/sunxi/sunxi_sram.c +++ b/drivers/soc/sunxi/sunxi_sram.c | |||
@@ -117,7 +117,7 @@ static int sunxi_sram_show(struct seq_file *s, void *data) | |||
117 | 117 | ||
118 | val = readl(base + sram_data->reg); | 118 | val = readl(base + sram_data->reg); |
119 | val >>= sram_data->offset; | 119 | val >>= sram_data->offset; |
120 | val &= sram_data->width; | 120 | val &= GENMASK(sram_data->width - 1, 0); |
121 | 121 | ||
122 | for (func = sram_data->func; func->func; func++) { | 122 | for (func = sram_data->func; func->func; func++) { |
123 | seq_printf(s, "\t\t%s%c\n", func->func, | 123 | seq_printf(s, "\t\t%s%c\n", func->func, |
@@ -208,7 +208,8 @@ int sunxi_sram_claim(struct device *dev) | |||
208 | return -EBUSY; | 208 | return -EBUSY; |
209 | } | 209 | } |
210 | 210 | ||
211 | mask = GENMASK(sram_data->offset + sram_data->width, sram_data->offset); | 211 | mask = GENMASK(sram_data->offset + sram_data->width - 1, |
212 | sram_data->offset); | ||
212 | val = readl(base + sram_data->reg); | 213 | val = readl(base + sram_data->reg); |
213 | val &= ~mask; | 214 | val &= ~mask; |
214 | writel(val | ((device << sram_data->offset) & mask), | 215 | writel(val | ((device << sram_data->offset) & mask), |