projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'mhi-net-immutable' of https://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git]
/
drivers
/
mtd
/
nand
/
raw
/
omap2.c
diff --git
a/drivers/mtd/nand/raw/omap2.c
b/drivers/mtd/nand/raw/omap2.c
index
fbb9955
..
2c3e65c
100644
(file)
--- a/
drivers/mtd/nand/raw/omap2.c
+++ b/
drivers/mtd/nand/raw/omap2.c
@@
-15,6
+15,7
@@
#include <linux/jiffies.h>
#include <linux/sched.h>
#include <linux/mtd/mtd.h>
#include <linux/jiffies.h>
#include <linux/sched.h>
#include <linux/mtd/mtd.h>
+#include <linux/mtd/nand-ecc-sw-bch.h>
#include <linux/mtd/rawnand.h>
#include <linux/mtd/partitions.h>
#include <linux/omap-dma.h>
#include <linux/mtd/rawnand.h>
#include <linux/mtd/partitions.h>
#include <linux/omap-dma.h>
@@
-1866,18
+1867,19
@@
static const struct mtd_ooblayout_ops omap_ooblayout_ops = {
static int omap_sw_ooblayout_ecc(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
{
static int omap_sw_ooblayout_ecc(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
{
- struct nand_chip *chip = mtd_to_nand(mtd);
+ struct nand_device *nand = mtd_to_nanddev(mtd);
+ const struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv;
int off = BADBLOCK_MARKER_LENGTH;
int off = BADBLOCK_MARKER_LENGTH;
- if (section >=
chip->ecc.
steps)
+ if (section >=
engine_conf->n
steps)
return -ERANGE;
/*
* When SW correction is employed, one OMAP specific marker byte is
* reserved after each ECC step.
*/
return -ERANGE;
/*
* When SW correction is employed, one OMAP specific marker byte is
* reserved after each ECC step.
*/
- oobregion->offset = off + (section * (
chip->ecc.bytes
+ 1));
- oobregion->length =
chip->ecc.bytes
;
+ oobregion->offset = off + (section * (
engine_conf->code_size
+ 1));
+ oobregion->length =
engine_conf->code_size
;
return 0;
}
return 0;
}
@@
-1885,7
+1887,8
@@
static int omap_sw_ooblayout_ecc(struct mtd_info *mtd, int section,
static int omap_sw_ooblayout_free(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
{
static int omap_sw_ooblayout_free(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
{
- struct nand_chip *chip = mtd_to_nand(mtd);
+ struct nand_device *nand = mtd_to_nanddev(mtd);
+ const struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv;
int off = BADBLOCK_MARKER_LENGTH;
if (section)
int off = BADBLOCK_MARKER_LENGTH;
if (section)
@@
-1895,7
+1898,7
@@
static int omap_sw_ooblayout_free(struct mtd_info *mtd, int section,
* When SW correction is employed, one OMAP specific marker byte is
* reserved after each ECC step.
*/
* When SW correction is employed, one OMAP specific marker byte is
* reserved after each ECC step.
*/
- off += ((
chip->ecc.bytes + 1) * chip->ecc.
steps);
+ off += ((
engine_conf->code_size + 1) * engine_conf->n
steps);
if (off >= mtd->oobsize)
return -ERANGE;
if (off >= mtd->oobsize)
return -ERANGE;