linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static
@ 2010-11-11 18:02 Lars-Peter Clausen
  2010-11-11 18:02 ` [PATCH] MTD: NAND: jz4740: Remove custom {read,write}_page handlers Lars-Peter Clausen
  2010-11-26 15:45 ` [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Artem Bityutskiy
  0 siblings, 2 replies; 3+ messages in thread
From: Lars-Peter Clausen @ 2010-11-11 18:02 UTC (permalink / raw)
  To: Artem Bityutskiy; +Cc: linux-mtd, linux-kernel, Lars-Peter Clausen

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/mtd/nand/jz4740_nand.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c
index 67343fc..c9e2a59 100644
--- a/drivers/mtd/nand/jz4740_nand.c
+++ b/drivers/mtd/nand/jz4740_nand.c
@@ -489,7 +489,7 @@ static int __devexit jz_nand_remove(struct platform_device *pdev)
 	return 0;
 }
 
-struct platform_driver jz_nand_driver = {
+static struct platform_driver jz_nand_driver = {
 	.probe = jz_nand_probe,
 	.remove = __devexit_p(jz_nand_remove),
 	.driver = {
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH] MTD: NAND: jz4740: Remove custom {read,write}_page handlers
  2010-11-11 18:02 [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Lars-Peter Clausen
@ 2010-11-11 18:02 ` Lars-Peter Clausen
  2010-11-26 15:45 ` [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Artem Bityutskiy
  1 sibling, 0 replies; 3+ messages in thread
From: Lars-Peter Clausen @ 2010-11-11 18:02 UTC (permalink / raw)
  To: Artem Bityutskiy; +Cc: linux-mtd, linux-kernel, Lars-Peter Clausen

Now that the mtd core supports more then 64 ecc bytes we can use it instead of
some a custom hack in the jz4740 nand driver.
This patch removes the custom {read,write}_page handlers from the jz4740 nand
driver. Thus the driver will now fallback to the default handlers from the nand
core.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 drivers/mtd/nand/jz4740_nand.c |   55 ----------------------------------------
 1 files changed, 0 insertions(+), 55 deletions(-)

diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c
index c9e2a59..cea38a5 100644
--- a/drivers/mtd/nand/jz4740_nand.c
+++ b/drivers/mtd/nand/jz4740_nand.c
@@ -251,58 +251,6 @@ static int jz_nand_correct_ecc_rs(struct mtd_info *mtd, uint8_t *dat,
 	return 0;
 }
 
-
-/* Copy paste of nand_read_page_hwecc_oob_first except for different eccpos
- * handling. The ecc area is for 4k chips 72 bytes long and thus does not fit
- * into the eccpos array. */
-static int jz_nand_read_page_hwecc_oob_first(struct mtd_info *mtd,
-	struct nand_chip *chip, uint8_t *buf, int page)
-{
-	int i, eccsize = chip->ecc.size;
-	int eccbytes = chip->ecc.bytes;
-	int eccsteps = chip->ecc.steps;
-	uint8_t *p = buf;
-	unsigned int ecc_offset = chip->page_shift;
-
-	/* Read the OOB area first */
-	chip->cmdfunc(mtd, NAND_CMD_READOOB, 0, page);
-	chip->read_buf(mtd, chip->oob_poi, mtd->oobsize);
-	chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page);
-
-	for (i = ecc_offset; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
-		int stat;
-
-		chip->ecc.hwctl(mtd, NAND_ECC_READ);
-		chip->read_buf(mtd, p, eccsize);
-
-		stat = chip->ecc.correct(mtd, p, &chip->oob_poi[i], NULL);
-		if (stat < 0)
-			mtd->ecc_stats.failed++;
-		else
-			mtd->ecc_stats.corrected += stat;
-	}
-	return 0;
-}
-
-/* Copy-and-paste of nand_write_page_hwecc with different eccpos handling. */
-static void jz_nand_write_page_hwecc(struct mtd_info *mtd,
-	struct nand_chip *chip, const uint8_t *buf)
-{
-	int i, eccsize = chip->ecc.size;
-	int eccbytes = chip->ecc.bytes;
-	int eccsteps = chip->ecc.steps;
-	const uint8_t *p = buf;
-	unsigned int ecc_offset = chip->page_shift;
-
-	for (i = ecc_offset; eccsteps; eccsteps--, i += eccbytes, p += eccsize) {
-		chip->ecc.hwctl(mtd, NAND_ECC_WRITE);
-		chip->write_buf(mtd, p, eccsize);
-		chip->ecc.calculate(mtd, p, &chip->oob_poi[i]);
-	}
-
-	chip->write_buf(mtd, chip->oob_poi, mtd->oobsize);
-}
-
 #ifdef CONFIG_MTD_CMDLINE_PARTS
 static const char *part_probes[] = {"cmdline", NULL};
 #endif
@@ -393,9 +341,6 @@ static int __devinit jz_nand_probe(struct platform_device *pdev)
 	chip->ecc.size		= 512;
 	chip->ecc.bytes		= 9;
 
-	chip->ecc.read_page	= jz_nand_read_page_hwecc_oob_first;
-	chip->ecc.write_page	= jz_nand_write_page_hwecc;
-
 	if (pdata)
 		chip->ecc.layout = pdata->ecc_layout;
 
-- 
1.5.6.5


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static
  2010-11-11 18:02 [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Lars-Peter Clausen
  2010-11-11 18:02 ` [PATCH] MTD: NAND: jz4740: Remove custom {read,write}_page handlers Lars-Peter Clausen
@ 2010-11-26 15:45 ` Artem Bityutskiy
  1 sibling, 0 replies; 3+ messages in thread
From: Artem Bityutskiy @ 2010-11-26 15:45 UTC (permalink / raw)
  To: Lars-Peter Clausen; +Cc: linux-mtd, linux-kernel

On Thu, 2010-11-11 at 19:02 +0100, Lars-Peter Clausen wrote:
> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
> ---
>  drivers/mtd/nand/jz4740_nand.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 

Pushed both patches to l2-mtd-2.6.git, thanks.

-- 
Best Regards,
Artem Bityutskiy (Артём Битюцкий)


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-11-26 15:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-11 18:02 [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Lars-Peter Clausen
2010-11-11 18:02 ` [PATCH] MTD: NAND: jz4740: Remove custom {read,write}_page handlers Lars-Peter Clausen
2010-11-26 15:45 ` [PATCH] MTD: NAND: jz4740: Make 'struct platform_driver jz_nand_driver' static Artem Bityutskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).