On Thu, 2012-06-07 at 12:22 +0200, Roland Stigge wrote: > This patch adds support for the SLC NAND controller inside the LPC32xx SoC. > > Signed-off-by: Roland Stigge <stigge@xxxxxxxxx> Now the write_page and write_page_raw functions return an error code, see this commit in the l2 tree: http://git.infradead.org/users/dedekind/l2-mtd.git/commit/49c8d9ab3b70732665249f2d993f734378ebbba9 I've amended your SLC driver, see below the diff. But I think it could return the real return code becuse it can fail - could you please take a look and send an incremental patch? Please, base your work on top of the l2-mtd tree: git://git.infradead.org/users/dedekind/l2-mtd.git Thanks! diff --git a/drivers/mtd/nand/lpc32xx_slc.c b/drivers/mtd/nand/lpc32xx_slc.c index 796e37b..7e2e78d 100644 --- a/drivers/mtd/nand/lpc32xx_slc.c +++ b/drivers/mtd/nand/lpc32xx_slc.c @@ -673,9 +673,9 @@ static int lpc32xx_nand_read_page_raw_syndrome(struct mtd_info *mtd, * Write the data and OOB data to the device, use ECC with the data, * disable ECC for the OOB data */ -static void lpc32xx_nand_write_page_syndrome(struct mtd_info *mtd, - struct nand_chip *chip, - const u8 *buf, int oob_required) +static int lpc32xx_nand_write_page_syndrome(struct mtd_info *mtd, + struct nand_chip *chip, + const u8 *buf, int oob_required) { struct lpc32xx_nand_host *host = chip->priv; u8 *pb = chip->oob_poi + chip->ecc.layout->eccpos[0]; @@ -691,20 +691,22 @@ static void lpc32xx_nand_write_page_syndrome(struct mtd_info *mtd, /* Write ECC data to device */ chip->write_buf(mtd, chip->oob_poi, mtd->oobsize); + return 0; } /* * Write the data and OOB data to the device, no ECC correction with the * data or OOB data */ -static void lpc32xx_nand_write_page_raw_syndrome(struct mtd_info *mtd, - struct nand_chip *chip, - const u8 *buf, - int oob_required) +static int lpc32xx_nand_write_page_raw_syndrome(struct mtd_info *mtd, + struct nand_chip *chip, + const u8 *buf, + int oob_required) { /* Raw writes can just use the FIFO interface */ chip->write_buf(mtd, buf, chip->ecc.size * chip->ecc.steps); chip->write_buf(mtd, chip->oob_poi, mtd->oobsize); + return 0; } static bool lpc32xx_dma_filter(struct dma_chan *chan, void *param) -- Best Regards, Artem Bityutskiy
Attachment:
signature.asc
Description: This is a digitally signed message part