mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant
[linux-2.6-microblaze.git] / drivers / mtd / nand / raw / nand_esmt.c
index 3338c68..4412c40 100644 (file)
 
 static void esmt_nand_decode_id(struct nand_chip *chip)
 {
+       struct nand_device *base = &chip->base;
+       struct nand_ecc_props requirements = {};
+
        nand_decode_ext_id(chip);
 
        /* Extract ECC requirements from 5th id byte. */
        if (chip->id.len >= 5 && nand_is_slc(chip)) {
-               chip->base.eccreq.step_size = 512;
+               requirements.step_size = 512;
                switch (chip->id.data[4] & 0x3) {
                case 0x0:
-                       chip->base.eccreq.strength = 4;
+                       requirements.strength = 4;
                        break;
                case 0x1:
-                       chip->base.eccreq.strength = 2;
+                       requirements.strength = 2;
                        break;
                case 0x2:
-                       chip->base.eccreq.strength = 1;
+                       requirements.strength = 1;
                        break;
                default:
                        WARN(1, "Could not get ECC info");
-                       chip->base.eccreq.step_size = 0;
+                       requirements.step_size = 0;
                        break;
                }
        }
+
+       nanddev_set_ecc_requirements(base, &requirements);
 }
 
 static int esmt_nand_init(struct nand_chip *chip)