lkml.org 
[lkml]   [2015]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 06/58] mtd: nand: atmel: use the mtd instance embedded in struct nand_chip
    Date
    struct nand_chip now embeds an mtd device. Make use of this mtd instance.

    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    ---
    Changes generated with the following coccinelle script

    --->8---
    virtual patch

    @fix1@
    identifier __chipfield, __mtdfield;
    type __type;
    @@
    (
    __type {
    ...
    struct nand_chip __chipfield;
    ...
    - struct mtd_info __mtdfield;
    ...
    };
    |
    __type {
    ...
    - struct mtd_info __mtdfield;
    ...
    struct nand_chip __chipfield;
    ...
    };
    )

    @fix2 depends on fix1@
    identifier fix1.__chipfield, fix1.__mtdfield;
    identifier __subfield;
    type fix1.__type;
    __type *__priv;
    @@
    (
    - __priv->__mtdfield.__subfield
    + nand_to_mtd(&__priv->__chipfield)->__subfield
    |
    - &(__priv->__mtdfield)
    + nand_to_mtd(&__priv->__chipfield)
    )
    --->8---
    ---
    drivers/mtd/nand/atmel_nand.c | 13 +++++++------
    1 file changed, 7 insertions(+), 6 deletions(-)

    diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
    index edd191a..9ba2831 100644
    --- a/drivers/mtd/nand/atmel_nand.c
    +++ b/drivers/mtd/nand/atmel_nand.c
    @@ -116,7 +116,6 @@ static struct atmel_nfc nand_nfc;

    struct atmel_nand_host {
    struct nand_chip nand_chip;
    - struct mtd_info mtd;
    void __iomem *io_base;
    dma_addr_t io_phys;
    struct atmel_nand_data board;
    @@ -317,8 +316,10 @@ static int nfc_set_sram_bank(struct atmel_nand_host *host, unsigned int bank)
    return -EINVAL;

    if (bank) {
    + struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
    +
    /* Only for a 2k-page or lower flash, NFC can handle 2 banks */
    - if (host->mtd.writesize > 2048)
    + if (mtd->writesize > 2048)
    return -EINVAL;
    nfc_writel(host->nfc->hsmc_regs, BANK, ATMEL_HSMC_NFC_BANK1);
    } else {
    @@ -1159,8 +1160,8 @@ static uint16_t *create_lookup_table(struct device *dev, int sector_size)
    static int atmel_pmecc_nand_init_params(struct platform_device *pdev,
    struct atmel_nand_host *host)
    {
    - struct mtd_info *mtd = &host->mtd;
    struct nand_chip *nand_chip = &host->nand_chip;
    + struct mtd_info *mtd = nand_to_mtd(nand_chip);
    struct resource *regs, *regs_pmerr, *regs_rom;
    uint16_t *galois_table;
    int cap, sector_size, err_no;
    @@ -1586,8 +1587,8 @@ static int atmel_of_init_port(struct atmel_nand_host *host,
    static int atmel_hw_nand_init_params(struct platform_device *pdev,
    struct atmel_nand_host *host)
    {
    - struct mtd_info *mtd = &host->mtd;
    struct nand_chip *nand_chip = &host->nand_chip;
    + struct mtd_info *mtd = nand_to_mtd(nand_chip);
    struct resource *regs;

    regs = platform_get_resource(pdev, IORESOURCE_MEM, 1);
    @@ -2112,8 +2113,8 @@ static int atmel_nand_probe(struct platform_device *pdev)
    }
    host->io_phys = (dma_addr_t)mem->start;

    - mtd = &host->mtd;
    nand_chip = &host->nand_chip;
    + mtd = nand_to_mtd(nand_chip);
    host->dev = &pdev->dev;
    if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) {
    nand_set_flash_node(nand_chip, pdev->dev.of_node);
    @@ -2283,7 +2284,7 @@ err_nand_ioremap:
    static int atmel_nand_remove(struct platform_device *pdev)
    {
    struct atmel_nand_host *host = platform_get_drvdata(pdev);
    - struct mtd_info *mtd = &host->mtd;
    + struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);

    nand_release(mtd);

    --
    2.1.4


    \
     
     \ /
      Last update: 2015-12-10 10:01    [W:3.453 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site