diff options
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.patch | 63 |
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; |