Message ID | 1451941501-42952-5-git-send-email-blogic@openwrt.org |
---|---|
State | Changes Requested |
Headers | show |
On Mon, Jan 04, 2016 at 10:04:59PM +0100, John Crispin wrote:
> Signed-off-by: John Crispin <blogic@openwrt.org>
Patch description? Why do we need this?
On Mon, Jan 04, 2016 at 10:04:59PM +0100, John Crispin wrote: > Signed-off-by: John Crispin <blogic@openwrt.org> > --- > drivers/mtd/nand/xway_nand.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c > index c75a2bc..ef7c7ce 100644 > --- a/drivers/mtd/nand/xway_nand.c > +++ b/drivers/mtd/nand/xway_nand.c > @@ -136,6 +136,32 @@ static unsigned char xway_read_byte(struct mtd_info *mtd) > return ret; > } > > +static void xway_read_buf(struct mtd_info *mtd, u_char *buf, int len) > +{ > + struct nand_chip *this = mtd->priv; This is no longer legal. Use mtd_to_nand(). And please rebase (and test) your entire series on l2-mtd.git. It doesn't apply: http://linux-mtd.infradead.org/source.html Thanks, Brian > + unsigned long nandaddr = (unsigned long) this->IO_ADDR_R; > + unsigned long flags; > + int i; > + > + spin_lock_irqsave(&ebu_lock, flags); > + for (i = 0; i < len; i++) > + buf[i] = ltq_r8((void __iomem *)(nandaddr | NAND_READ_DATA)); > + spin_unlock_irqrestore(&ebu_lock, flags); > +} > + > +static void xway_write_buf(struct mtd_info *mtd, const u_char *buf, int len) > +{ > + struct nand_chip *this = mtd->priv; > + unsigned long nandaddr = (unsigned long) this->IO_ADDR_W; > + unsigned long flags; > + int i; > + > + spin_lock_irqsave(&ebu_lock, flags); > + for (i = 0; i < len; i++) > + ltq_w8(buf[i], (void __iomem *)(nandaddr | NAND_WRITE_DATA)); > + spin_unlock_irqrestore(&ebu_lock, flags); > +} > + > static int xway_nand_probe(struct platform_device *pdev) > { > struct nand_chip *this = platform_get_drvdata(pdev); > @@ -177,6 +203,8 @@ static struct platform_nand_data xway_nand_data = { > .dev_ready = xway_dev_ready, > .select_chip = xway_select_chip, > .read_byte = xway_read_byte, > + .read_buf = xway_read_buf, > + .write_buf = xway_write_buf, > } > }; > > -- > 1.7.10.4 > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c index c75a2bc..ef7c7ce 100644 --- a/drivers/mtd/nand/xway_nand.c +++ b/drivers/mtd/nand/xway_nand.c @@ -136,6 +136,32 @@ static unsigned char xway_read_byte(struct mtd_info *mtd) return ret; } +static void xway_read_buf(struct mtd_info *mtd, u_char *buf, int len) +{ + struct nand_chip *this = mtd->priv; + unsigned long nandaddr = (unsigned long) this->IO_ADDR_R; + unsigned long flags; + int i; + + spin_lock_irqsave(&ebu_lock, flags); + for (i = 0; i < len; i++) + buf[i] = ltq_r8((void __iomem *)(nandaddr | NAND_READ_DATA)); + spin_unlock_irqrestore(&ebu_lock, flags); +} + +static void xway_write_buf(struct mtd_info *mtd, const u_char *buf, int len) +{ + struct nand_chip *this = mtd->priv; + unsigned long nandaddr = (unsigned long) this->IO_ADDR_W; + unsigned long flags; + int i; + + spin_lock_irqsave(&ebu_lock, flags); + for (i = 0; i < len; i++) + ltq_w8(buf[i], (void __iomem *)(nandaddr | NAND_WRITE_DATA)); + spin_unlock_irqrestore(&ebu_lock, flags); +} + static int xway_nand_probe(struct platform_device *pdev) { struct nand_chip *this = platform_get_drvdata(pdev); @@ -177,6 +203,8 @@ static struct platform_nand_data xway_nand_data = { .dev_ready = xway_dev_ready, .select_chip = xway_select_chip, .read_byte = xway_read_byte, + .read_buf = xway_read_buf, + .write_buf = xway_write_buf, } };
Signed-off-by: John Crispin <blogic@openwrt.org> --- drivers/mtd/nand/xway_nand.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)