atheros[ar2315-spiflash]: I/O fixes
authorJohn Crispin <john@openwrt.org>
Tue, 24 Jun 2014 18:13:35 +0000 (18:13 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 24 Jun 2014 18:13:35 +0000 (18:13 +0000)
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>
SVN-Revision: 41322

target/linux/atheros/patches-3.10/120-spiflash.patch

index a07fa52f1a9647545860f241c3d7bbeea7bbf349..55bcc0ed4a9df47e45ae2230ea31021e6774d7a9 100644 (file)
@@ -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"
 +
 +
 +/* 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;
 +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
 +            u_char *buf)
 +{
 +      struct spiflash_priv *priv = to_spiflash(mtd);
-+      u8 *read_addr;
 +
 +      if (!len)
 +              return 0;
 +      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;