diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2016-04-17 16:53:07 -0400 |
---|---|---|
committer | Boris Brezillon <boris.brezillon@free-electrons.com> | 2016-05-05 17:55:13 -0400 |
commit | e4225ae8234cf5548c38dc887b233ad1d45b4d53 (patch) | |
tree | 8fc82521ccac7b0d7bee7d766a34dc77069e8f6b | |
parent | ae211bcfa1d013bea16912e7caebb1367740d4b4 (diff) |
mtd: mtd: drop NAND_ECC_SOFT_BCH enum value
This value should not be part of nand_ecc_modes_t as it specifies
algorithm not a mode. We successfully managed to introduce new "algo"
field which is respected now.
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
-rw-r--r-- | drivers/mtd/nand/fsmc_nand.c | 3 | ||||
-rw-r--r-- | drivers/mtd/nand/jz4780_nand.c | 1 | ||||
-rw-r--r-- | drivers/mtd/nand/mxc_nand.c | 1 | ||||
-rw-r--r-- | drivers/mtd/nand/nand_base.c | 11 | ||||
-rw-r--r-- | drivers/mtd/nand/nandsim.c | 2 | ||||
-rw-r--r-- | drivers/mtd/nand/sunxi_nand.c | 2 | ||||
-rw-r--r-- | include/linux/mtd/nand.h | 1 |
7 files changed, 5 insertions, 16 deletions
diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c index 0f8c63f85f86..d4f454a4b35e 100644 --- a/drivers/mtd/nand/fsmc_nand.c +++ b/drivers/mtd/nand/fsmc_nand.c | |||
@@ -959,7 +959,6 @@ static int __init fsmc_nand_probe(struct platform_device *pdev) | |||
959 | break; | 959 | break; |
960 | 960 | ||
961 | case NAND_ECC_SOFT: | 961 | case NAND_ECC_SOFT: |
962 | case NAND_ECC_SOFT_BCH: | ||
963 | if (nand->ecc.algo == NAND_ECC_BCH) { | 962 | if (nand->ecc.algo == NAND_ECC_BCH) { |
964 | dev_info(&pdev->dev, "Using 4-bit SW BCH ECC scheme\n"); | 963 | dev_info(&pdev->dev, "Using 4-bit SW BCH ECC scheme\n"); |
965 | break; | 964 | break; |
@@ -974,7 +973,7 @@ static int __init fsmc_nand_probe(struct platform_device *pdev) | |||
974 | * Don't set layout for BCH4 SW ECC. This will be | 973 | * Don't set layout for BCH4 SW ECC. This will be |
975 | * generated later in nand_bch_init() later. | 974 | * generated later in nand_bch_init() later. |
976 | */ | 975 | */ |
977 | if (nand->ecc.mode != NAND_ECC_SOFT_BCH) { | 976 | if (nand->ecc.mode == NAND_ECC_HW) { |
978 | switch (mtd->oobsize) { | 977 | switch (mtd->oobsize) { |
979 | case 16: | 978 | case 16: |
980 | case 64: | 979 | case 64: |
diff --git a/drivers/mtd/nand/jz4780_nand.c b/drivers/mtd/nand/jz4780_nand.c index 10f249ac148c..daf3c4217f4d 100644 --- a/drivers/mtd/nand/jz4780_nand.c +++ b/drivers/mtd/nand/jz4780_nand.c | |||
@@ -179,7 +179,6 @@ static int jz4780_nand_init_ecc(struct jz4780_nand_chip *nand, struct device *de | |||
179 | chip->ecc.correct = jz4780_nand_ecc_correct; | 179 | chip->ecc.correct = jz4780_nand_ecc_correct; |
180 | /* fall through */ | 180 | /* fall through */ |
181 | case NAND_ECC_SOFT: | 181 | case NAND_ECC_SOFT: |
182 | case NAND_ECC_SOFT_BCH: | ||
183 | dev_info(dev, "using %s (strength %d, size %d, bytes %d)\n", | 182 | dev_info(dev, "using %s (strength %d, size %d, bytes %d)\n", |
184 | (nfc->bch) ? "hardware BCH" : "software ECC", | 183 | (nfc->bch) ? "hardware BCH" : "software ECC", |
185 | chip->ecc.strength, chip->ecc.size, chip->ecc.bytes); | 184 | chip->ecc.strength, chip->ecc.size, chip->ecc.bytes); |
diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index aa0ba4b99395..5173fadc9a4e 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c | |||
@@ -1625,7 +1625,6 @@ static int mxcnd_probe(struct platform_device *pdev) | |||
1625 | break; | 1625 | break; |
1626 | 1626 | ||
1627 | case NAND_ECC_SOFT: | 1627 | case NAND_ECC_SOFT: |
1628 | case NAND_ECC_SOFT_BCH: | ||
1629 | break; | 1628 | break; |
1630 | 1629 | ||
1631 | default: | 1630 | default: |
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c index 1d74b802aa0a..c9d6230eab08 100644 --- a/drivers/mtd/nand/nand_base.c +++ b/drivers/mtd/nand/nand_base.c | |||
@@ -4183,8 +4183,7 @@ static int nand_set_ecc_soft_ops(struct mtd_info *mtd) | |||
4183 | struct nand_chip *chip = mtd_to_nand(mtd); | 4183 | struct nand_chip *chip = mtd_to_nand(mtd); |
4184 | struct nand_ecc_ctrl *ecc = &chip->ecc; | 4184 | struct nand_ecc_ctrl *ecc = &chip->ecc; |
4185 | 4185 | ||
4186 | if (WARN_ON(ecc->mode != NAND_ECC_SOFT && | 4186 | if (WARN_ON(ecc->mode != NAND_ECC_SOFT)) |
4187 | ecc->mode != NAND_ECC_SOFT_BCH)) | ||
4188 | return -EINVAL; | 4187 | return -EINVAL; |
4189 | 4188 | ||
4190 | switch (ecc->algo) { | 4189 | switch (ecc->algo) { |
@@ -4331,8 +4330,7 @@ int nand_scan_tail(struct mtd_info *mtd) | |||
4331 | * If no default placement scheme is given, select an appropriate one. | 4330 | * If no default placement scheme is given, select an appropriate one. |
4332 | */ | 4331 | */ |
4333 | if (!mtd->ooblayout && | 4332 | if (!mtd->ooblayout && |
4334 | !((ecc->mode == NAND_ECC_SOFT || ecc->mode == NAND_ECC_SOFT_BCH) && | 4333 | !(ecc->mode == NAND_ECC_SOFT && ecc->algo == NAND_ECC_BCH)) { |
4335 | ecc->algo == NAND_ECC_BCH)) { | ||
4336 | switch (mtd->oobsize) { | 4334 | switch (mtd->oobsize) { |
4337 | case 8: | 4335 | case 8: |
4338 | case 16: | 4336 | case 16: |
@@ -4426,7 +4424,6 @@ int nand_scan_tail(struct mtd_info *mtd) | |||
4426 | ecc->algo = NAND_ECC_HAMMING; | 4424 | ecc->algo = NAND_ECC_HAMMING; |
4427 | 4425 | ||
4428 | case NAND_ECC_SOFT: | 4426 | case NAND_ECC_SOFT: |
4429 | case NAND_ECC_SOFT_BCH: | ||
4430 | ret = nand_set_ecc_soft_ops(mtd); | 4427 | ret = nand_set_ecc_soft_ops(mtd); |
4431 | if (ret) { | 4428 | if (ret) { |
4432 | ret = -EINVAL; | 4429 | ret = -EINVAL; |
@@ -4514,7 +4511,6 @@ int nand_scan_tail(struct mtd_info *mtd) | |||
4514 | /* Large page NAND with SOFT_ECC should support subpage reads */ | 4511 | /* Large page NAND with SOFT_ECC should support subpage reads */ |
4515 | switch (ecc->mode) { | 4512 | switch (ecc->mode) { |
4516 | case NAND_ECC_SOFT: | 4513 | case NAND_ECC_SOFT: |
4517 | case NAND_ECC_SOFT_BCH: | ||
4518 | if (chip->page_shift > 9) | 4514 | if (chip->page_shift > 9) |
4519 | chip->options |= NAND_SUBPAGE_READ; | 4515 | chip->options |= NAND_SUBPAGE_READ; |
4520 | break; | 4516 | break; |
@@ -4614,8 +4610,7 @@ void nand_release(struct mtd_info *mtd) | |||
4614 | { | 4610 | { |
4615 | struct nand_chip *chip = mtd_to_nand(mtd); | 4611 | struct nand_chip *chip = mtd_to_nand(mtd); |
4616 | 4612 | ||
4617 | if ((chip->ecc.mode == NAND_ECC_SOFT || | 4613 | if (chip->ecc.mode == NAND_ECC_SOFT && |
4618 | chip->ecc.mode == NAND_ECC_SOFT_BCH) && | ||
4619 | chip->ecc.algo == NAND_ECC_BCH) | 4614 | chip->ecc.algo == NAND_ECC_BCH) |
4620 | nand_bch_free((struct nand_bch_control *)chip->ecc.priv); | 4615 | nand_bch_free((struct nand_bch_control *)chip->ecc.priv); |
4621 | 4616 | ||
diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c index 66eebb9e77f3..794745dff7f1 100644 --- a/drivers/mtd/nand/nandsim.c +++ b/drivers/mtd/nand/nandsim.c | |||
@@ -2339,7 +2339,7 @@ static int __init ns_init_module(void) | |||
2339 | retval = -EINVAL; | 2339 | retval = -EINVAL; |
2340 | goto error; | 2340 | goto error; |
2341 | } | 2341 | } |
2342 | chip->ecc.mode = NAND_ECC_SOFT_BCH; | 2342 | chip->ecc.mode = NAND_ECC_SOFT; |
2343 | chip->ecc.algo = NAND_ECC_BCH; | 2343 | chip->ecc.algo = NAND_ECC_BCH; |
2344 | chip->ecc.size = 512; | 2344 | chip->ecc.size = 512; |
2345 | chip->ecc.strength = bch; | 2345 | chip->ecc.strength = bch; |
diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c index 1baf89836210..a83a690688b4 100644 --- a/drivers/mtd/nand/sunxi_nand.c +++ b/drivers/mtd/nand/sunxi_nand.c | |||
@@ -1612,8 +1612,6 @@ static int sunxi_nand_ecc_init(struct mtd_info *mtd, struct nand_ecc_ctrl *ecc, | |||
1612 | return -EINVAL; | 1612 | return -EINVAL; |
1613 | 1613 | ||
1614 | switch (ecc->mode) { | 1614 | switch (ecc->mode) { |
1615 | case NAND_ECC_SOFT_BCH: | ||
1616 | break; | ||
1617 | case NAND_ECC_HW: | 1615 | case NAND_ECC_HW: |
1618 | ret = sunxi_nand_hw_ecc_ctrl_init(mtd, ecc, np); | 1616 | ret = sunxi_nand_hw_ecc_ctrl_init(mtd, ecc, np); |
1619 | if (ret) | 1617 | if (ret) |
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index e851839daf09..fbe8e164a4ee 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
@@ -116,7 +116,6 @@ typedef enum { | |||
116 | NAND_ECC_HW, | 116 | NAND_ECC_HW, |
117 | NAND_ECC_HW_SYNDROME, | 117 | NAND_ECC_HW_SYNDROME, |
118 | NAND_ECC_HW_OOB_FIRST, | 118 | NAND_ECC_HW_OOB_FIRST, |
119 | NAND_ECC_SOFT_BCH, | ||
120 | } nand_ecc_modes_t; | 119 | } nand_ecc_modes_t; |
121 | 120 | ||
122 | enum nand_ecc_algo { | 121 | enum nand_ecc_algo { |