mtd: nand: bcm47xx: use the mtd instance embedded in struct nand_chip
authorBoris BREZILLON <boris.brezillon@free-electrons.com>
Thu, 10 Dec 2015 07:59:52 +0000 (08:59 +0100)
committerBrian Norris <computersforpeace@gmail.com>
Fri, 18 Dec 2015 20:45:02 +0000 (12:45 -0800)
struct nand_chip now embeds an mtd device. Make use of this mtd instance.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/bcm47xxnflash/bcm47xxnflash.h
drivers/mtd/nand/bcm47xxnflash/main.c
drivers/mtd/nand/bcm47xxnflash/ops_bcm4706.c

index c005a62330b14f5444a6d5d5e65961fa27e6ce31..8ea75710a854410de704503a4bb6d2ff5b64b901 100644 (file)
@@ -12,7 +12,6 @@ struct bcm47xxnflash {
        struct bcma_drv_cc *cc;
 
        struct nand_chip nand_chip;
-       struct mtd_info mtd;
 
        unsigned curr_command;
        int curr_page_addr;
index 0b3acc4391818dbfd052ddb13e4ef4d0b795dcd9..2c9bffb614c5b9808a34c9f80f77b01c3f44952c 100644 (file)
@@ -27,6 +27,7 @@ static int bcm47xxnflash_probe(struct platform_device *pdev)
 {
        struct bcma_nflash *nflash = dev_get_platdata(&pdev->dev);
        struct bcm47xxnflash *b47n;
+       struct mtd_info *mtd;
        int err = 0;
 
        b47n = devm_kzalloc(&pdev->dev, sizeof(*b47n), GFP_KERNEL);
@@ -34,8 +35,9 @@ static int bcm47xxnflash_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        b47n->nand_chip.priv = b47n;
-       b47n->mtd.dev.parent = &pdev->dev;
-       b47n->mtd.priv = &b47n->nand_chip; /* Required */
+       mtd = nand_to_mtd(&b47n->nand_chip);
+       mtd->dev.parent = &pdev->dev;
+       mtd->priv = &b47n->nand_chip; /* Required */
        b47n->cc = container_of(nflash, struct bcma_drv_cc, nflash);
 
        if (b47n->cc->core->bus->chipinfo.id == BCMA_CHIP_ID_BCM4706) {
@@ -51,7 +53,7 @@ static int bcm47xxnflash_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, b47n);
 
-       err = mtd_device_parse_register(&b47n->mtd, probes, NULL, NULL, 0);
+       err = mtd_device_parse_register(mtd, probes, NULL, NULL, 0);
        if (err) {
                pr_err("Failed to register MTD device: %d\n", err);
                return err;
@@ -64,7 +66,7 @@ static int bcm47xxnflash_remove(struct platform_device *pdev)
 {
        struct bcm47xxnflash *nflash = platform_get_drvdata(pdev);
 
-       nand_release(&nflash->mtd);
+       nand_release(nand_to_mtd(&nflash->nand_chip));
 
        return 0;
 }
index e5b2e48658c4d1fb038d1d9f551ca92d4a12697c..652478035a7de68d0742c38a453eff78eec65142 100644 (file)
@@ -421,7 +421,7 @@ int bcm47xxnflash_ops_bcm4706_init(struct bcm47xxnflash *b47n)
                        (w4 << 24 | w3 << 18 | w2 << 12 | w1 << 6 | w0));
 
        /* Scan NAND */
-       err = nand_scan(&b47n->mtd, 1);
+       err = nand_scan(nand_to_mtd(&b47n->nand_chip), 1);
        if (err) {
                pr_err("Could not scan NAND flash: %d\n", err);
                goto exit;