mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant
[linux-2.6-microblaze.git] / drivers / mtd / nand / raw / tegra_nand.c
index cc72a2d..100c18e 100644 (file)
@@ -840,6 +840,8 @@ static int tegra_nand_get_strength(struct nand_chip *chip, const int *strength,
                                   int strength_len, int bits_per_step,
                                   int oobsize)
 {
+       const struct nand_ecc_props *requirements =
+               nanddev_get_ecc_requirements(&chip->base);
        bool maximize = chip->ecc.options & NAND_ECC_MAXIMIZE;
        int i;
 
@@ -855,7 +857,7 @@ static int tegra_nand_get_strength(struct nand_chip *chip, const int *strength,
                } else {
                        strength_sel = strength[i];
 
-                       if (strength_sel < chip->base.eccreq.strength)
+                       if (strength_sel < requirements->strength)
                                continue;
                }
 
@@ -908,6 +910,8 @@ static int tegra_nand_select_strength(struct nand_chip *chip, int oobsize)
 static int tegra_nand_attach_chip(struct nand_chip *chip)
 {
        struct tegra_nand_controller *ctrl = to_tegra_ctrl(chip->controller);
+       const struct nand_ecc_props *requirements =
+               nanddev_get_ecc_requirements(&chip->base);
        struct tegra_nand_chip *nand = to_tegra_chip(chip);
        struct mtd_info *mtd = nand_to_mtd(chip);
        int bits_per_step;
@@ -919,9 +923,9 @@ static int tegra_nand_attach_chip(struct nand_chip *chip)
        chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
        chip->ecc.size = 512;
        chip->ecc.steps = mtd->writesize / chip->ecc.size;
-       if (chip->base.eccreq.step_size != 512) {
+       if (requirements->step_size != 512) {
                dev_err(ctrl->dev, "Unsupported step size %d\n",
-                       chip->base.eccreq.step_size);
+                       requirements->step_size);
                return -EINVAL;
        }
 
@@ -952,7 +956,7 @@ static int tegra_nand_attach_chip(struct nand_chip *chip)
                if (ret < 0) {
                        dev_err(ctrl->dev,
                                "No valid strength found, minimum %d\n",
-                               chip->base.eccreq.strength);
+                               requirements->strength);
                        return ret;
                }