Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56177516 authored by Akinobu Mita's avatar Akinobu Mita Committed by David Woodhouse
Browse files

mtd: mtd_nandbiterrs: use mtd_test helpers



Use mtdtest_write() and mtdtest_erase_eraseblock() in mtd_test helpers.

Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Cc: Iwo Mergler <Iwo.Mergler@netcommwireless.com.au>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Vikram Narayanan <vikram186@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 6cf78358
Loading
Loading
Loading
Loading
+6 −33
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@
#include <linux/err.h>
#include <linux/mtd/nand.h>
#include <linux/slab.h>
#include "mtd_test.h"

static int dev;
module_param(dev, int, S_IRUGO);
@@ -98,45 +99,17 @@ static uint8_t hash(unsigned offset)
	return c;
}

static int erase_block(void)
{
	int err;
	struct erase_info ei;
	loff_t addr = eraseblock * mtd->erasesize;

	pr_info("erase_block\n");

	memset(&ei, 0, sizeof(struct erase_info));
	ei.mtd  = mtd;
	ei.addr = addr;
	ei.len  = mtd->erasesize;

	err = mtd_erase(mtd, &ei);
	if (err || ei.state == MTD_ERASE_FAILED) {
		pr_err("error %d while erasing\n", err);
		if (!err)
			err = -EIO;
		return err;
	}

	return 0;
}

/* Writes wbuffer to page */
static int write_page(int log)
{
	int err = 0;
	size_t written;
	int err;

	if (log)
		pr_info("write_page\n");

	err = mtd_write(mtd, offset, mtd->writesize, &written, wbuffer);
	if (err || written != mtd->writesize) {
	err = mtdtest_write(mtd, offset, mtd->writesize, wbuffer);
	if (err)
		pr_err("error: write failed at %#llx\n", (long long)offset);
		if (!err)
			err = -EIO;
	}

	return err;
}
@@ -415,7 +388,7 @@ static int __init mtd_nandbiterrs_init(void)
		goto exit_rbuffer;
	}

	err = erase_block();
	err = mtdtest_erase_eraseblock(mtd, eraseblock);
	if (err)
		goto exit_error;

@@ -428,7 +401,7 @@ static int __init mtd_nandbiterrs_init(void)
		goto exit_error;

	/* We leave the block un-erased in case of test failure. */
	err = erase_block();
	err = mtdtest_erase_eraseblock(mtd, eraseblock);
	if (err)
		goto exit_error;