memory: samsung: endian fixes for IO
authorBen Dooks <ben.dooks@codethink.co.uk>
Fri, 17 Jun 2016 17:08:10 +0000 (18:08 +0100)
committerKrzysztof Kozlowski <k.kozlowski@samsung.com>
Mon, 20 Jun 2016 07:43:34 +0000 (09:43 +0200)
Use the relaxed versions of the IO accessors to avoid any issues
if running in big endian.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
drivers/memory/samsung/exynos-srom.c

index 96756fb..5714bdf 100644 (file)
@@ -91,17 +91,17 @@ static int exynos_srom_configure_bank(struct exynos_srom *srom,
        if (width == 2)
                cs |= 1 << EXYNOS_SROM_BW__DATAWIDTH__SHIFT;
 
-       bw = __raw_readl(srom->reg_base + EXYNOS_SROM_BW);
+       bw = readl_relaxed(srom->reg_base + EXYNOS_SROM_BW);
        bw = (bw & ~(EXYNOS_SROM_BW__CS_MASK << bank)) | (cs << bank);
-       __raw_writel(bw, srom->reg_base + EXYNOS_SROM_BW);
-
-       __raw_writel(pmc | (timing[0] << EXYNOS_SROM_BCX__TACP__SHIFT) |
-                   (timing[1] << EXYNOS_SROM_BCX__TCAH__SHIFT) |
-                   (timing[2] << EXYNOS_SROM_BCX__TCOH__SHIFT) |
-                   (timing[3] << EXYNOS_SROM_BCX__TACC__SHIFT) |
-                   (timing[4] << EXYNOS_SROM_BCX__TCOS__SHIFT) |
-                   (timing[5] << EXYNOS_SROM_BCX__TACS__SHIFT),
-                   srom->reg_base + EXYNOS_SROM_BC0 + bank);
+       writel_relaxed(bw, srom->reg_base + EXYNOS_SROM_BW);
+
+       writel_relaxed(pmc | (timing[0] << EXYNOS_SROM_BCX__TACP__SHIFT) |
+                      (timing[1] << EXYNOS_SROM_BCX__TCAH__SHIFT) |
+                      (timing[2] << EXYNOS_SROM_BCX__TCOH__SHIFT) |
+                      (timing[3] << EXYNOS_SROM_BCX__TACC__SHIFT) |
+                      (timing[4] << EXYNOS_SROM_BCX__TCOS__SHIFT) |
+                      (timing[5] << EXYNOS_SROM_BCX__TACS__SHIFT),
+                      srom->reg_base + EXYNOS_SROM_BC0 + bank);
 
        return 0;
 }