ar71xx: fix register address calculation for DDR flushing
authorFelix Fietkau <nbd@nbd.name>
Wed, 18 May 2016 16:06:40 +0000 (18:06 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 18 May 2016 16:06:50 +0000 (18:06 +0200)
Signed-off-by: Felix Fietkau <nbd@nbd.name>
target/linux/ar71xx/patches-4.4/103-MIPS-ath79-fix-register-address-in-ath79_ddr_wb_flus.patch [new file with mode: 0644]

diff --git a/target/linux/ar71xx/patches-4.4/103-MIPS-ath79-fix-register-address-in-ath79_ddr_wb_flus.patch b/target/linux/ar71xx/patches-4.4/103-MIPS-ath79-fix-register-address-in-ath79_ddr_wb_flus.patch
new file mode 100644 (file)
index 0000000..611344d
--- /dev/null
@@ -0,0 +1,23 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Wed, 18 May 2016 18:03:31 +0200
+Subject: [PATCH] MIPS: ath79: fix register address in ath79_ddr_wb_flush()
+
+ath79_ddr_wb_flush_base has the type void __iomem *, so register offsets
+need to be a multiple of 4.
+
+Cc: Alban Bedel <albeu@free.fr>
+Fixes: 24b0e3e84fbf ("MIPS: ath79: Improve the DDR controller interface")
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/arch/mips/ath79/common.c
++++ b/arch/mips/ath79/common.c
+@@ -59,7 +59,7 @@ EXPORT_SYMBOL_GPL(ath79_ddr_ctrl_init);
+ void ath79_ddr_wb_flush(u32 reg)
+ {
+-      void __iomem *flush_reg = ath79_ddr_wb_flush_base + reg;
++      void __iomem *flush_reg = ath79_ddr_wb_flush_base + reg * 4;
+       /* Flush the DDR write buffer. */
+       __raw_writel(0x1, flush_reg);