[PATCH v4 02/15] mtd: rawnand: denali: use helper function for ecc setup

2018-06-20 Thread Abhishek Sahu
Use the NAND core helper function nand_ecc_choose_conf to tune
the ECC parameters instead of the function locally defined.

Acked-by: Miquel Raynal 
Acked-by: Masahiro Yamada 
Signed-off-by: Abhishek Sahu 
---
* Changes from v3:
 NONE

* Changes from v2:

  1. Changed commit message

* Changes from v1:
  NEW PATCH

 drivers/mtd/nand/raw/denali.c | 30 ++
 1 file changed, 2 insertions(+), 28 deletions(-)

diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c
index 2a302a1..a586a1d 100644
--- a/drivers/mtd/nand/raw/denali.c
+++ b/drivers/mtd/nand/raw/denali.c
@@ -1120,33 +1120,6 @@ int denali_calc_ecc_bytes(int step_size, int strength)
 }
 EXPORT_SYMBOL(denali_calc_ecc_bytes);
 
-static int denali_ecc_setup(struct mtd_info *mtd, struct nand_chip *chip,
-   struct denali_nand_info *denali)
-{
-   int oobavail = mtd->oobsize - denali->oob_skip_bytes;
-   int ret;
-
-   /*
-* If .size and .strength are already set (usually by DT),
-* check if they are supported by this controller.
-*/
-   if (chip->ecc.size && chip->ecc.strength)
-   return nand_check_ecc_caps(chip, denali->ecc_caps, oobavail);
-
-   /*
-* We want .size and .strength closest to the chip's requirement
-* unless NAND_ECC_MAXIMIZE is requested.
-*/
-   if (!(chip->ecc.options & NAND_ECC_MAXIMIZE)) {
-   ret = nand_match_ecc_req(chip, denali->ecc_caps, oobavail);
-   if (!ret)
-   return 0;
-   }
-
-   /* Max ECC strength is the last thing we can do */
-   return nand_maximize_ecc(chip, denali->ecc_caps, oobavail);
-}
-
 static int denali_ooblayout_ecc(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
 {
@@ -1317,7 +1290,8 @@ int denali_init(struct denali_nand_info *denali)
chip->ecc.mode = NAND_ECC_HW_SYNDROME;
chip->options |= NAND_NO_SUBPAGE_WRITE;
 
-   ret = denali_ecc_setup(mtd, chip, denali);
+   ret = nand_ecc_choose_conf(chip, denali->ecc_caps,
+  mtd->oobsize - denali->oob_skip_bytes);
if (ret) {
dev_err(denali->dev, "Failed to setup ECC settings.\n");
goto disable_irq;
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc.
is a member of Code Aurora Forum, hosted by The Linux Foundation



[PATCH v4 02/15] mtd: rawnand: denali: use helper function for ecc setup

2018-06-20 Thread Abhishek Sahu
Use the NAND core helper function nand_ecc_choose_conf to tune
the ECC parameters instead of the function locally defined.

Acked-by: Miquel Raynal 
Acked-by: Masahiro Yamada 
Signed-off-by: Abhishek Sahu 
---
* Changes from v3:
 NONE

* Changes from v2:

  1. Changed commit message

* Changes from v1:
  NEW PATCH

 drivers/mtd/nand/raw/denali.c | 30 ++
 1 file changed, 2 insertions(+), 28 deletions(-)

diff --git a/drivers/mtd/nand/raw/denali.c b/drivers/mtd/nand/raw/denali.c
index 2a302a1..a586a1d 100644
--- a/drivers/mtd/nand/raw/denali.c
+++ b/drivers/mtd/nand/raw/denali.c
@@ -1120,33 +1120,6 @@ int denali_calc_ecc_bytes(int step_size, int strength)
 }
 EXPORT_SYMBOL(denali_calc_ecc_bytes);
 
-static int denali_ecc_setup(struct mtd_info *mtd, struct nand_chip *chip,
-   struct denali_nand_info *denali)
-{
-   int oobavail = mtd->oobsize - denali->oob_skip_bytes;
-   int ret;
-
-   /*
-* If .size and .strength are already set (usually by DT),
-* check if they are supported by this controller.
-*/
-   if (chip->ecc.size && chip->ecc.strength)
-   return nand_check_ecc_caps(chip, denali->ecc_caps, oobavail);
-
-   /*
-* We want .size and .strength closest to the chip's requirement
-* unless NAND_ECC_MAXIMIZE is requested.
-*/
-   if (!(chip->ecc.options & NAND_ECC_MAXIMIZE)) {
-   ret = nand_match_ecc_req(chip, denali->ecc_caps, oobavail);
-   if (!ret)
-   return 0;
-   }
-
-   /* Max ECC strength is the last thing we can do */
-   return nand_maximize_ecc(chip, denali->ecc_caps, oobavail);
-}
-
 static int denali_ooblayout_ecc(struct mtd_info *mtd, int section,
struct mtd_oob_region *oobregion)
 {
@@ -1317,7 +1290,8 @@ int denali_init(struct denali_nand_info *denali)
chip->ecc.mode = NAND_ECC_HW_SYNDROME;
chip->options |= NAND_NO_SUBPAGE_WRITE;
 
-   ret = denali_ecc_setup(mtd, chip, denali);
+   ret = nand_ecc_choose_conf(chip, denali->ecc_caps,
+  mtd->oobsize - denali->oob_skip_bytes);
if (ret) {
dev_err(denali->dev, "Failed to setup ECC settings.\n");
goto disable_irq;
-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc.
is a member of Code Aurora Forum, hosted by The Linux Foundation