From patchwork Tue Sep 18 13:32:44 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [V3] mtd: basic (read only) driver for BCMA serial flash Date: Tue, 18 Sep 2012 03:32:44 -0000 From: Artem Bityutskiy X-Patchwork-Id: 184714 Message-Id: <1347975164.7112.63.camel@sauron.fi.intel.com> To: =?UTF-8?Q?Rafa=C5=82_Mi=C5=82ecki?= Cc: linux-mtd@lists.infradead.org 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 > --- > 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] *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] *mem [sparse] +drivers/mtd/devices/bcm47xxsflash.c:37:38: got unsigned int [usertype] * [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] *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;