/* Set the internal oob buffer location, just after the page data */
        chip->oob_poi = chip->buffers->databuf + mtd->writesize;
 
-       /*
-        * Set the provided ECC layout. If ecc->layout is NULL, the MTD core
-        * will just leave mtd->ooblayout to NULL, if it's not NULL, it will
-        * set ->ooblayout to the default ecclayout wrapper.
-        */
-       mtd_set_ecclayout(mtd, ecc->layout);
-
        /*
         * If no default placement scheme is given, select an appropriate one.
         */
 
 
        eccsteps = mtd->writesize/eccsize;
 
-       /*
-        * Rely on the default ecclayout to ooblayout wrapper provided by MTD
-        * core if ecc.layout is not NULL.
-        * FIXME: this should be removed when all callers have moved to the
-        * mtd_ooblayout_ops approach.
-        */
-       mtd_set_ecclayout(mtd, nand->ecc.layout);
-
        /* Check that we have an oob layout description. */
        if (!mtd->ooblayout) {
                pr_warn("missing oob scheme");
 
  * @prepad:    padding information for syndrome based ECC generators
  * @postpad:   padding information for syndrome based ECC generators
  * @options:   ECC specific options (see NAND_ECC_XXX flags defined above)
- * @layout:    ECC layout control struct pointer
  * @priv:      pointer to private ECC control data
  * @hwctl:     function to control hardware ECC generator. Must only
  *             be provided if an hardware ECC is available
        int prepad;
        int postpad;
        unsigned int options;
-       struct nand_ecclayout   *layout;
        void *priv;
        void (*hwctl)(struct mtd_info *mtd, int mode);
        int (*calculate)(struct mtd_info *mtd, const uint8_t *dat,