Commit f40b4053 authored by Arnaud Patard's avatar Arnaud Patard Committed by Tony Lindgren

[PATCH] ARM: OMAP: omap-hw: Fix build breakage

Update the omap-hw to take into account the "recent" changes
in the mtd layer.
Signed-off-by: default avatarArnaud Patard <arnaud.patard@rtp-net.org>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 70f2e9a3
...@@ -425,9 +425,9 @@ static void omap_nand_command(struct mtd_info *mtd, unsigned command, int column ...@@ -425,9 +425,9 @@ static void omap_nand_command(struct mtd_info *mtd, unsigned command, int column
if (command == NAND_CMD_SEQIN) { if (command == NAND_CMD_SEQIN) {
int readcmd; int readcmd;
if (column >= mtd->oobblock) { if (column >= mtd->writesize) {
/* OOB area */ /* OOB area */
column -= mtd->oobblock; column -= mtd->writesize;
readcmd = NAND_CMD_READOOB; readcmd = NAND_CMD_READOOB;
} else if (column < 256) { } else if (column < 256) {
/* First 256 bytes --> READ0 */ /* First 256 bytes --> READ0 */
...@@ -458,7 +458,7 @@ static void omap_nand_command_lp(struct mtd_info *mtd, unsigned command, int col ...@@ -458,7 +458,7 @@ static void omap_nand_command_lp(struct mtd_info *mtd, unsigned command, int col
struct nand_chip *this = mtd->priv; struct nand_chip *this = mtd->priv;
if (command == NAND_CMD_READOOB) { if (command == NAND_CMD_READOOB) {
column += mtd->oobblock; column += mtd->writesize;
command = NAND_CMD_READ0; command = NAND_CMD_READ0;
} }
switch (command) { switch (command) {
...@@ -495,7 +495,8 @@ static int omap_nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_ch ...@@ -495,7 +495,8 @@ static int omap_nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_ch
int n; int n;
struct nand_chip *this = mtd->priv; struct nand_chip *this = mtd->priv;
if (this->eccmode == NAND_ECC_HW12_2048) /* Ex NAND_ECC_HW12_2048 */
if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
n = 4; n = 4;
else else
n = 1; n = 1;
...@@ -642,7 +643,8 @@ static int omap_nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *rea ...@@ -642,7 +643,8 @@ static int omap_nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *rea
int block_count = 0, i, r; int block_count = 0, i, r;
this = mtd->priv; this = mtd->priv;
if (this->eccmode == NAND_ECC_HW12_2048) /* Ex NAND_ECC_HW12_2048 */
if ((this->ecc.mode == NAND_ECC_HW) && (this->ecc.size == 2048))
block_count = 4; block_count = 4;
else else
block_count = 1; block_count = 1;
...@@ -794,19 +796,20 @@ static int __init omap_nand_init(void) ...@@ -794,19 +796,20 @@ static int __init omap_nand_init(void)
/* Used from chip select and nand_command() */ /* Used from chip select and nand_command() */
this->read_byte = omap_nand_read_byte; this->read_byte = omap_nand_read_byte;
this->write_byte = omap_nand_write_byte;
this->select_chip = omap_nand_select_chip;
this->select_chip = omap_nand_select_chip; this->dev_ready = omap_nand_dev_ready;
this->dev_ready = omap_nand_dev_ready; this->chip_delay = 0;
this->chip_delay = 0; this->ecc.mode = NAND_ECC_HW;
this->eccmode = NAND_ECC_HW3_512; this->ecc.bytes = 3;
this->cmdfunc = omap_nand_command; this->ecc.size = 512;
this->write_buf = omap_nand_write_buf; this->cmdfunc = omap_nand_command;
this->read_buf = omap_nand_read_buf; this->write_buf = omap_nand_write_buf;
this->verify_buf = omap_nand_verify_buf; this->read_buf = omap_nand_read_buf;
this->calculate_ecc = omap_nand_calculate_ecc; this->verify_buf = omap_nand_verify_buf;
this->correct_data = omap_nand_correct_data; this->ecc.calculate = omap_nand_calculate_ecc;
this->enable_hwecc = omap_nand_enable_hwecc; this->ecc.correct = omap_nand_correct_data;
this->ecc.hwctl = omap_nand_enable_hwecc;
nand_write_reg(NND_SYSCFG, 0x1); /* Enable auto idle */ nand_write_reg(NND_SYSCFG, 0x1); /* Enable auto idle */
nand_write_reg(NND_PSC_CLK, 10); nand_write_reg(NND_PSC_CLK, 10);
...@@ -822,10 +825,10 @@ static int __init omap_nand_init(void) ...@@ -822,10 +825,10 @@ static int __init omap_nand_init(void)
l = nand_read_reg(NND_CTRL); l = nand_read_reg(NND_CTRL);
l |= 1 << 4; /* Set the A8 bit in CTRL reg */ l |= 1 << 4; /* Set the A8 bit in CTRL reg */
nand_write_reg(NND_CTRL, l); nand_write_reg(NND_CTRL, l);
this->eccmode = NAND_ECC_HW12_2048; this->ecc.mode = NAND_ECC_HW;
this->eccsteps = 1; this->ecc.steps = 1;
this->eccsize = 2048; this->ecc.size = 2048;
this->eccbytes = 12; this->ecc.bytes = 12;
omap_mtd->eccsize = 2048; omap_mtd->eccsize = 2048;
nand_write_reg(NND_ECC_SELECT, 6); nand_write_reg(NND_ECC_SELECT, 6);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment