summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch')
-rw-r--r--target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch b/target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch
deleted file mode 100644
index fb27194..0000000
--- a/target/linux/ar71xx/patches-3.3/a06-rb750_nand-add-buffer-verification.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- a/drivers/mtd/nand/rb750_nand.c
-+++ b/drivers/mtd/nand/rb750_nand.c
-@@ -110,7 +110,8 @@ static void rb750_nand_write(const u8 *b
- __raw_readl(base + AR71XX_GPIO_REG_OE);
- }
-
--static void rb750_nand_read(u8 *read_buf, unsigned len)
-+static int rb750_nand_read_verify(u8 *read_buf, unsigned len,
-+ const u8 *verify_buf)
- {
- void __iomem *base = ath79_gpio_base;
- unsigned i;
-@@ -130,8 +131,13 @@ static void rb750_nand_read(u8 *read_buf
- /* deactivate RE line */
- __raw_writel(RB750_NAND_NRE, base + AR71XX_GPIO_REG_SET);
-
-- read_buf[i] = data;
-+ if (read_buf)
-+ read_buf[i] = data;
-+ else if (verify_buf && verify_buf[i] != data)
-+ return -EFAULT;
- }
-+
-+ return 0;
- }
-
- static void rb750_nand_select_chip(struct mtd_info *mtd, int chip)
-@@ -206,13 +212,13 @@ static void rb750_nand_cmd_ctrl(struct m
- static u8 rb750_nand_read_byte(struct mtd_info *mtd)
- {
- u8 data = 0;
-- rb750_nand_read(&data, 1);
-+ rb750_nand_read_verify(&data, 1, NULL);
- return data;
- }
-
- static void rb750_nand_read_buf(struct mtd_info *mtd, u8 *buf, int len)
- {
-- rb750_nand_read(buf, len);
-+ rb750_nand_read_verify(buf, len, NULL);
- }
-
- static void rb750_nand_write_buf(struct mtd_info *mtd, const u8 *buf, int len)
-@@ -220,6 +226,11 @@ static void rb750_nand_write_buf(struct
- rb750_nand_write(buf, len);
- }
-
-+static int rb750_nand_verify_buf(struct mtd_info *mtd, const u8 *buf, int len)
-+{
-+ return rb750_nand_read_verify(NULL, len, buf);
-+}
-+
- static void __init rb750_nand_gpio_init(struct rb750_nand_info *info)
- {
- void __iomem *base = ath79_gpio_base;
-@@ -274,6 +285,7 @@ static int __devinit rb750_nand_probe(st
- info->chip.read_byte = rb750_nand_read_byte;
- info->chip.write_buf = rb750_nand_write_buf;
- info->chip.read_buf = rb750_nand_read_buf;
-+ info->chip.verify_buf = rb750_nand_verify_buf;
-
- info->chip.chip_delay = 25;
- info->chip.ecc.mode = NAND_ECC_SOFT;