Commit 76413839 authored by Alexander Shiyan's avatar Alexander Shiyan Committed by David Woodhouse

mtd: nand_base: Use io{read, write}*_rep functions for transfer

This patch replaces the usage of loops in the nand_base code with
io{read,write}{8,16}_rep calls instead.
Signed-off-by: default avatarAlexander Shiyan <shc_work@mail.ru>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 65c972af
...@@ -211,11 +211,9 @@ static void nand_select_chip(struct mtd_info *mtd, int chipnr) ...@@ -211,11 +211,9 @@ static void nand_select_chip(struct mtd_info *mtd, int chipnr)
*/ */
static void nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) static void nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len)
{ {
int i;
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
for (i = 0; i < len; i++) iowrite8_rep(chip->IO_ADDR_W, buf, len);
writeb(buf[i], chip->IO_ADDR_W);
} }
/** /**
...@@ -228,11 +226,9 @@ static void nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) ...@@ -228,11 +226,9 @@ static void nand_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len)
*/ */
static void nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) static void nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
{ {
int i;
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
for (i = 0; i < len; i++) ioread8_rep(chip->IO_ADDR_R, buf, len);
buf[i] = readb(chip->IO_ADDR_R);
} }
/** /**
...@@ -245,14 +241,10 @@ static void nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) ...@@ -245,14 +241,10 @@ static void nand_read_buf(struct mtd_info *mtd, uint8_t *buf, int len)
*/ */
static void nand_write_buf16(struct mtd_info *mtd, const uint8_t *buf, int len) static void nand_write_buf16(struct mtd_info *mtd, const uint8_t *buf, int len)
{ {
int i;
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
u16 *p = (u16 *) buf; u16 *p = (u16 *) buf;
len >>= 1;
for (i = 0; i < len; i++)
writew(p[i], chip->IO_ADDR_W);
iowrite16_rep(chip->IO_ADDR_W, p, len >> 1);
} }
/** /**
...@@ -265,13 +257,10 @@ static void nand_write_buf16(struct mtd_info *mtd, const uint8_t *buf, int len) ...@@ -265,13 +257,10 @@ static void nand_write_buf16(struct mtd_info *mtd, const uint8_t *buf, int len)
*/ */
static void nand_read_buf16(struct mtd_info *mtd, uint8_t *buf, int len) static void nand_read_buf16(struct mtd_info *mtd, uint8_t *buf, int len)
{ {
int i;
struct nand_chip *chip = mtd->priv; struct nand_chip *chip = mtd->priv;
u16 *p = (u16 *) buf; u16 *p = (u16 *) buf;
len >>= 1;
for (i = 0; i < len; i++) ioread16_rep(chip->IO_ADDR_R, p, len >> 1);
p[i] = readw(chip->IO_ADDR_R);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment