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

Artem Bityutskiy dedekind1 at gmail.com
Tue Sep 18 09:32:44 EDT 2012


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 at 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:

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;

-- 
Best Regards,
Artem Bityutskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
URL: <http://lists.infradead.org/pipermail/linux-mtd/attachments/20120918/ae862665/attachment.sig>


More information about the linux-mtd mailing list