Patchwork [V3] mtd: basic (read only) driver for BCMA serial flash

login
register
mail settings
Submitter Artem Bityutskiy
Date Sept. 18, 2012, 1:32 p.m.
Message ID <1347975164.7112.63.camel@sauron.fi.intel.com>
Download mbox | patch
Permalink /patch/184714/
State New
Headers show

Comments

Artem Bityutskiy - Sept. 18, 2012, 1:32 p.m.
On Mon, 2012-09-17 at 11:50 +0200, Rafał Miłecki wrote:
> This registers MTD driver for serial flash platform device. Right now it
> supports reading only, writing still has to be implemented.
> 
> Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
> ---
> V2: fix mem leak (add failure path in init)
>     signed-off-by
> V3: drop BROKEN
>     drop useless check in bcm47xxsflash_remove
>     marm flash memory as ROM (until we implement writing)

Aiaiai complained:

--- before_patching.log
+++ after_patching.log
@@ @@
+drivers/mtd/devices/bcm47xxsflash.c:30:30: warning: incorrect type in argument 1 (different address spaces) [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:30:30:    expected void const volatile [noderef] <asn:2>*mem [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:30:30:    got unsigned char [usertype] *src [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:37:38: warning: incorrect type in argument 1 (different address spaces) [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:37:38:    expected void const volatile [noderef] <asn:2>*mem [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:37:38:    got unsigned int [usertype] *<noident> [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:43:30: warning: incorrect type in argument 1 (different address spaces) [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:43:30:    expected void const volatile [noderef] <asn:2>*mem [sparse]
+drivers/mtd/devices/bcm47xxsflash.c:43:30:    got unsigned char [usertype] *[assigned] src [sparse]

I pushed your patch to l2-mtd.git with these changes:

Patch

diff --git a/drivers/mtd/devices/bcm47xxsflash.c b/drivers/mtd/devices/bcm47xxsflash.c
index f711a51..a328872 100644
--- a/drivers/mtd/devices/bcm47xxsflash.c
+++ b/drivers/mtd/devices/bcm47xxsflash.c
@@ -15,7 +15,7 @@  static int bcm47xxsflash_read(struct mtd_info *mtd, loff_t from, size_t len,
 {
        struct bcma_sflash *sflash = mtd->priv;
        size_t bytes_read = 0;
-       u8 *src = (u8 *)KSEG0ADDR(sflash->window + from);
+       __iomem u8 *src = (__iomem u8 *)KSEG0ADDR(sflash->window + from);
        int i;
        size_t unaligned_before, unaligned_after;
 
@@ -34,7 +34,7 @@  static int bcm47xxsflash_read(struct mtd_info *mtd, loff_t from, size_t len,
        }
        for (i = from - unaligned_before; i < from + len - unaligned_after;
             i += 4) {
-               *(u32 *)buf = readl((u32 *)src);
+               *(u32 *)buf = readl(src);
                buf += 4;
                src += 4;
                bytes_read += 4;