lkml.org 
[lkml]   [2018]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 05/33] mtd: rawnand: fsl_elbc: convert driver to nand_scan()
    Date
    Two helpers have been added to the core to make ECC-related
    configuration between the detection phase and the final NAND scan. Use
    these hooks and convert the driver to just use nand_scan() instead of
    both nand_scan_ident() and nand_scan_tail().

    Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
    ---
    drivers/mtd/nand/raw/fsl_elbc_nand.c | 19 ++++++++-----------
    1 file changed, 8 insertions(+), 11 deletions(-)

    diff --git a/drivers/mtd/nand/raw/fsl_elbc_nand.c b/drivers/mtd/nand/raw/fsl_elbc_nand.c
    index 0aa54a949653..11dfe9002454 100644
    --- a/drivers/mtd/nand/raw/fsl_elbc_nand.c
    +++ b/drivers/mtd/nand/raw/fsl_elbc_nand.c
    @@ -637,9 +637,9 @@ static int fsl_elbc_wait(struct mtd_info *mtd, struct nand_chip *chip)
    return (elbc_fcm_ctrl->mdr & 0xff) | NAND_STATUS_WP;
    }

    -static int fsl_elbc_chip_init_tail(struct mtd_info *mtd)
    +static int fsl_elbc_attach_chip(struct nand_chip *chip)
    {
    - struct nand_chip *chip = mtd_to_nand(mtd);
    + struct mtd_info *mtd = nand_to_mtd(chip);
    struct fsl_elbc_mtd *priv = nand_get_controller_data(chip);
    struct fsl_lbc_ctrl *ctrl = priv->ctrl;
    struct fsl_lbc_regs __iomem *lbc = ctrl->regs;
    @@ -706,6 +706,10 @@ static int fsl_elbc_chip_init_tail(struct mtd_info *mtd)
    return 0;
    }

    +static struct nand_controller_ops fsl_elbc_controller_ops = {
    + .attach_chip = fsl_elbc_attach_chip,
    +};
    +
    static int fsl_elbc_read_page(struct mtd_info *mtd, struct nand_chip *chip,
    uint8_t *buf, int oob_required, int page)
    {
    @@ -910,15 +914,8 @@ static int fsl_elbc_nand_probe(struct platform_device *pdev)
    if (ret)
    goto err;

    - ret = nand_scan_ident(mtd, 1, NULL);
    - if (ret)
    - goto err;
    -
    - ret = fsl_elbc_chip_init_tail(mtd);
    - if (ret)
    - goto err;
    -
    - ret = nand_scan_tail(mtd);
    + priv->chip->controller.ops = &fsl_elbc_controller_ops;
    + ret = nand_scan(mtd, 1);
    if (ret)
    goto err;

    --
    2.14.1
    \
     
     \ /
      Last update: 2018-07-20 01:04    [W:2.422 / U:0.360 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site