mtd: nand/docg4: fix driver after Linux resync
Subsystems (2)
PATCH 1/1 mtd: nand/docg4: fix driver after Linux resync
Commit dfe64e2c89731a3f9950d7acd8681b68df2bae03:
mtd: resync with Linux-3.7.1
broke the docg4 driver. Specifically:
- some of the prototypes of the ecc methods changed
- the NAND_NO_AUTOINCR flag was removed
- the ecc.strength element was added.
This patch fixes these. Tested on the docg4 on my palmtre680 board.
--- drivers/mtd/nand/docg4.c | 26 ++++++++++++++------------ 1 files changed, 14 insertions(+), 12 deletions(-)
drivers/mtd/nand/docg4.c +14 -12
@@ -487,7 +487,7 @@ static void docg4_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) }static int docg4_read_oob (struct mtd_info *mtd,struct nand_chip *nand, -int page,int sndcmd) +int page) {struct docg4_priv *doc = nand->priv;void __iomem *docptr =CONFIG_SYS_NAND_BASE ;
@@ -577,7 +577,7 @@ static void docg4_write_buf16(struct mtd_info *mtd, const uint8_t *buf, int len)writew (p[i], nand->IO_ADDR_W); } -static void write_page (struct mtd_info *mtd,struct nand_chip *nand, +static int write_page (struct mtd_info *mtd,struct nand_chip *nand,const uint8_t *buf,int use_ecc) {void __iomem *docptr =CONFIG_SYS_NAND_BASE ;
@@ -626,16 +626,18 @@ static void write_page(struct mtd_info *mtd, struct nand_chip *nand,write_nop (docptr);writew (0 , docptr +DOC_DATAEND );write_nop (docptr); + +return 0 ; } -static void docg4_write_page_raw (struct mtd_info *mtd,struct nand_chip *nand, -const uint8_t *buf) +static int docg4_write_page_raw (struct mtd_info *mtd,struct nand_chip *nand, +const uint8_t *buf,int oob_required) {return write_page (mtd, nand, buf,0 ); } -static void docg4_write_page (struct mtd_info *mtd,struct nand_chip *nand, -const uint8_t *buf) +static int docg4_write_page (struct mtd_info *mtd,struct nand_chip *nand, +const uint8_t *buf,int oob_required) {return write_page (mtd, nand, buf,1 ); }
@@ -706,13 +708,13 @@ static int read_page(struct mtd_info *mtd, struct nand_chip *nand,static int docg4_read_page_raw (struct mtd_info *mtd,struct nand_chip *nand, -uint8_t *buf,int page) +uint8_t *buf,int oob_required,int page) {return read_page (mtd, nand, buf, page,0 ); }static int docg4_read_page (struct mtd_info *mtd,struct nand_chip *nand, -uint8_t *buf,int page) +uint8_t *buf,int oob_required,int page) {return read_page (mtd, nand, buf, page,1 ); }
@@ -779,7 +781,7 @@ static int read_factory_bbt(struct mtd_info *mtd)return -ENOMEM ;read_page_prologue (CONFIG_SYS_NAND_BASE , g4_addr); - status =docg4_read_page (mtd, nand, buf,DOCG4_FACTORY_BBT_PAGE ); + status =docg4_read_page (mtd, nand, buf,0 ,DOCG4_FACTORY_BBT_PAGE );if (status) goto exit;
@@ -858,7 +860,7 @@ static int docg4_block_markbad(struct mtd_info *mtd, loff_t ofs)/* write first page of block */ write_page_prologue (CONFIG_SYS_NAND_BASE , g4_addr); -docg4_write_page (mtd, nand, buf); +docg4_write_page (mtd, nand, buf,1 ); ret =pageprog (mtd);if (!ret) mtd->ecc_stats.badblocks++;
@@ -959,8 +961,8 @@ int docg4_nand_init(struct mtd_info *mtd, struct nand_chip *nand, int devnum) nand->ecc.size =DOCG4_PAGE_SIZE ; nand->ecc.prepad =8 ; nand->ecc.bytes =8 ; - nand->options = -NAND_BUSWIDTH_16 |NAND_NO_SUBPAGE_WRITE |NAND_NO_AUTOINCR ; + nand->ecc.strength =DOCG4_T ; + nand->options =NAND_BUSWIDTH_16 |NAND_NO_SUBPAGE_WRITE ; nand->controller = &nand->hwcontrol;/* methods */
Signature · 1 line
1.7.8.6
PATCH 1/1 mtd: nand/docg4: fix driver after Linux resync
Quoted 10 lines · Mike Dunn
Commit
dfe64e2c89731a3f9950d7acd8681b68df2bae03:mtd: resync with Linux-3.7.1
broke the docg4 driver. Specifically:
- some of the prototypes of the ecc methods changed
- theNAND_NO_AUTOINCRflag was removed
- the ecc.strength element was added.This patch fixes these. Tested on the docg4 on my palmtre680 board.
Applied to u-boot-nand-flash.
Is board support for palmtre680 coming, so the driver will get routine build-testing?
-Scott
PATCH 1/1 mtd: nand/docg4: fix driver after Linux resync
Quoted 10 lines · Scott Wood
Quoted 9 lines · Mike Dunn
Commit
dfe64e2c89731a3f9950d7acd8681b68df2bae03:mtd: resync with Linux-3.7.1
broke the docg4 driver. Specifically:
- some of the prototypes of the ecc methods changed
- theNAND_NO_AUTOINCRflag was removed
- the ecc.strength element was added.
Quoted 6 lines
Quoted 1 line
This patch fixes these. Tested on the docg4 on my palmtre680 board.
Applied to u-boot-nand-flash.
Is board support for palmtre680 coming, so the driver will get routine build-testing?
Yes. I've already submitted patches for palmtreo680 board support, but was remiss in shepherding it to mainline. Will be resubmitting soon.
Thanks,
Mike