aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/atheros
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2014-06-24 18:13:35 +0000
committerJohn Crispin <blogic@openwrt.org>2014-06-24 18:13:35 +0000
commit4685d6706266eb3f54881f6ebbbe979ec01532e0 (patch)
tree9288e55059b151b33442cf51775c629a13144a1b /target/linux/atheros
parent6c193cf52989dd5de221562027baf458940ddff1 (diff)
downloadupstream-4685d6706266eb3f54881f6ebbbe979ec01532e0.tar.gz
upstream-4685d6706266eb3f54881f6ebbbe979ec01532e0.tar.bz2
upstream-4685d6706266eb3f54881f6ebbbe979ec01532e0.zip
atheros[ar2315-spiflash]: I/O fixes
Directly use ioread/iowrite functions to avoid odd dependency. And carefully annotate I/O memory pointers. Singed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41322 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/atheros')
-rw-r--r--target/linux/atheros/patches-3.10/120-spiflash.patch15
1 files changed, 6 insertions, 9 deletions
diff --git a/target/linux/atheros/patches-3.10/120-spiflash.patch b/target/linux/atheros/patches-3.10/120-spiflash.patch
index a07fa52f1a..55bcc0ed4a 100644
--- a/target/linux/atheros/patches-3.10/120-spiflash.patch
+++ b/target/linux/atheros/patches-3.10/120-spiflash.patch
@@ -23,7 +23,7 @@
--- /dev/null
+++ b/drivers/mtd/devices/ar2315.c
-@@ -0,0 +1,539 @@
+@@ -0,0 +1,536 @@
+
+/*
+ * MTD driver for the SPI Flash Memory support on Atheros AR2315
@@ -54,7 +54,6 @@
+#include <linux/delay.h>
+#include <linux/io.h>
+
-+#include <ar231x.h>
+#include "ar2315_spiflash.h"
+
+
@@ -140,8 +139,8 @@
+/* Driver private data structure */
+struct spiflash_priv {
+ struct mtd_info mtd;
-+ void *readaddr; /* memory mapped data for read */
-+ void *mmraddr; /* memory mapped register space */
++ void __iomem *readaddr; /* memory mapped data for read */
++ void __iomem *mmraddr; /* memory mapped register space */
+ wait_queue_head_t wq;
+ spinlock_t lock;
+ int state;
@@ -161,13 +160,13 @@
+static u32
+spiflash_read_reg(struct spiflash_priv *priv, int reg)
+{
-+ return ar231x_read_reg((u32) priv->mmraddr + reg);
++ return ioread32(priv->mmraddr + reg);
+}
+
+static void
+spiflash_write_reg(struct spiflash_priv *priv, int reg, u32 data)
+{
-+ ar231x_write_reg((u32) priv->mmraddr + reg, data);
++ iowrite32(data, priv->mmraddr + reg);
+}
+
+static u32
@@ -341,7 +340,6 @@
+ u_char *buf)
+{
+ struct spiflash_priv *priv = to_spiflash(mtd);
-+ u8 *read_addr;
+
+ if (!len)
+ return 0;
@@ -354,8 +352,7 @@
+ if (!spiflash_wait_ready(priv, FL_READING))
+ return -EINTR;
+
-+ read_addr = (u8 *)(priv->readaddr + from);
-+ memcpy_fromio(buf, read_addr, len);
++ memcpy_fromio(buf, priv->readaddr + from, len);
+ spiflash_done(priv);
+
+ return 0;