Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1318977

[PATCH] drivers: soc: sunxi: Fix mask generation for SRAM mapping

From Jens Kuske <jenskuske@gmail.com>
Newsgroups linux.kernel
Subject [PATCH] drivers: soc: sunxi: Fix mask generation for SRAM mapping
Date 2016-01-27 15:00 +0100
Message-ID <qVyNC-4jj-33@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


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>
---
 drivers/soc/sunxi/sunxi_sram.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/sunxi/sunxi_sram.c b/drivers/soc/sunxi/sunxi_sram.c
index bc52670..99e354c 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)
 
 			val = readl(base + sram_data->reg);
 			val >>= sram_data->offset;
-			val &= sram_data->width;
+			val &= GENMASK(sram_data->width - 1, 0);
 
 			for (func = sram_data->func; func->func; func++) {
 				seq_printf(s, "\t\t%s%c\n", func->func,
@@ -208,7 +208,8 @@ int sunxi_sram_claim(struct device *dev)
 		return -EBUSY;
 	}
 
-	mask = GENMASK(sram_data->offset + sram_data->width, sram_data->offset);
+	mask = GENMASK(sram_data->offset + sram_data->width - 1,
+		       sram_data->offset);
 	val = readl(base + sram_data->reg);
 	val &= ~mask;
 	writel(val | ((device << sram_data->offset) & mask),
-- 
2.7.0

Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

[PATCH] drivers: soc: sunxi: Fix mask generation for SRAM mapping Jens Kuske <jenskuske@gmail.com> - 2016-01-27 15:00 +0100
  Re: [PATCH] drivers: soc: sunxi: Fix mask generation for SRAM mapping Maxime Ripard <maxime.ripard@free-electrons.com> - 2016-01-27 20:30 +0100

csiph-web