Loading drivers/mtd/nand/davinci_nand.c +16 −14 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ * outputs in a "wire-AND" configuration, with no per-chip signals. */ struct davinci_nand_info { struct mtd_info mtd; struct nand_chip chip; struct nand_ecclayout ecclayout; Loading @@ -80,8 +79,10 @@ struct davinci_nand_info { static DEFINE_SPINLOCK(davinci_nand_lock); static bool ecc4_busy; #define to_davinci_nand(m) container_of(m, struct davinci_nand_info, mtd) static inline struct davinci_nand_info *to_davinci_nand(struct mtd_info *mtd) { return container_of(mtd_to_nand(mtd), struct davinci_nand_info, chip); } static inline unsigned int davinci_nand_readl(struct davinci_nand_info *info, int offset) Loading Loading @@ -636,6 +637,7 @@ static int nand_davinci_probe(struct platform_device *pdev) int ret; uint32_t val; nand_ecc_modes_t ecc_mode; struct mtd_info *mtd; pdata = nand_davinci_get_pdata(pdev); if (IS_ERR(pdata)) Loading Loading @@ -682,8 +684,9 @@ static int nand_davinci_probe(struct platform_device *pdev) info->base = base; info->vaddr = vaddr; info->mtd.priv = &info->chip; info->mtd.dev.parent = &pdev->dev; mtd = nand_to_mtd(&info->chip); mtd->priv = &info->chip; mtd->dev.parent = &pdev->dev; nand_set_flash_node(&info->chip, pdev->dev.of_node); info->chip.IO_ADDR_R = vaddr; Loading Loading @@ -785,7 +788,7 @@ static int nand_davinci_probe(struct platform_device *pdev) spin_unlock_irq(&davinci_nand_lock); /* Scan to find existence of the device(s) */ ret = nand_scan_ident(&info->mtd, pdata->mask_chipsel ? 2 : 1, NULL); ret = nand_scan_ident(mtd, pdata->mask_chipsel ? 2 : 1, NULL); if (ret < 0) { dev_dbg(&pdev->dev, "no NAND chip(s) found\n"); goto err; Loading @@ -797,9 +800,9 @@ static int nand_davinci_probe(struct platform_device *pdev) * usable: 10 bytes are needed, not 6. */ if (pdata->ecc_bits == 4) { int chunks = info->mtd.writesize / 512; int chunks = mtd->writesize / 512; if (!chunks || info->mtd.oobsize < 16) { if (!chunks || mtd->oobsize < 16) { dev_dbg(&pdev->dev, "too small\n"); ret = -EINVAL; goto err; Loading @@ -811,8 +814,7 @@ static int nand_davinci_probe(struct platform_device *pdev) */ if (chunks == 1) { info->ecclayout = hwecc4_small; info->ecclayout.oobfree[1].length = info->mtd.oobsize - 16; info->ecclayout.oobfree[1].length = mtd->oobsize - 16; goto syndrome_done; } if (chunks == 4) { Loading @@ -833,15 +835,15 @@ static int nand_davinci_probe(struct platform_device *pdev) info->chip.ecc.layout = &info->ecclayout; } ret = nand_scan_tail(&info->mtd); ret = nand_scan_tail(mtd); if (ret < 0) goto err; if (pdata->parts) ret = mtd_device_parse_register(&info->mtd, NULL, NULL, ret = mtd_device_parse_register(mtd, NULL, NULL, pdata->parts, pdata->nr_parts); else ret = mtd_device_register(&info->mtd, NULL, 0); ret = mtd_device_register(mtd, NULL, 0); if (ret < 0) goto err; Loading Loading @@ -871,7 +873,7 @@ static int nand_davinci_remove(struct platform_device *pdev) ecc4_busy = false; spin_unlock_irq(&davinci_nand_lock); nand_release(&info->mtd); nand_release(nand_to_mtd(&info->chip)); clk_disable_unprepare(info->clk); Loading Loading
drivers/mtd/nand/davinci_nand.c +16 −14 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ * outputs in a "wire-AND" configuration, with no per-chip signals. */ struct davinci_nand_info { struct mtd_info mtd; struct nand_chip chip; struct nand_ecclayout ecclayout; Loading @@ -80,8 +79,10 @@ struct davinci_nand_info { static DEFINE_SPINLOCK(davinci_nand_lock); static bool ecc4_busy; #define to_davinci_nand(m) container_of(m, struct davinci_nand_info, mtd) static inline struct davinci_nand_info *to_davinci_nand(struct mtd_info *mtd) { return container_of(mtd_to_nand(mtd), struct davinci_nand_info, chip); } static inline unsigned int davinci_nand_readl(struct davinci_nand_info *info, int offset) Loading Loading @@ -636,6 +637,7 @@ static int nand_davinci_probe(struct platform_device *pdev) int ret; uint32_t val; nand_ecc_modes_t ecc_mode; struct mtd_info *mtd; pdata = nand_davinci_get_pdata(pdev); if (IS_ERR(pdata)) Loading Loading @@ -682,8 +684,9 @@ static int nand_davinci_probe(struct platform_device *pdev) info->base = base; info->vaddr = vaddr; info->mtd.priv = &info->chip; info->mtd.dev.parent = &pdev->dev; mtd = nand_to_mtd(&info->chip); mtd->priv = &info->chip; mtd->dev.parent = &pdev->dev; nand_set_flash_node(&info->chip, pdev->dev.of_node); info->chip.IO_ADDR_R = vaddr; Loading Loading @@ -785,7 +788,7 @@ static int nand_davinci_probe(struct platform_device *pdev) spin_unlock_irq(&davinci_nand_lock); /* Scan to find existence of the device(s) */ ret = nand_scan_ident(&info->mtd, pdata->mask_chipsel ? 2 : 1, NULL); ret = nand_scan_ident(mtd, pdata->mask_chipsel ? 2 : 1, NULL); if (ret < 0) { dev_dbg(&pdev->dev, "no NAND chip(s) found\n"); goto err; Loading @@ -797,9 +800,9 @@ static int nand_davinci_probe(struct platform_device *pdev) * usable: 10 bytes are needed, not 6. */ if (pdata->ecc_bits == 4) { int chunks = info->mtd.writesize / 512; int chunks = mtd->writesize / 512; if (!chunks || info->mtd.oobsize < 16) { if (!chunks || mtd->oobsize < 16) { dev_dbg(&pdev->dev, "too small\n"); ret = -EINVAL; goto err; Loading @@ -811,8 +814,7 @@ static int nand_davinci_probe(struct platform_device *pdev) */ if (chunks == 1) { info->ecclayout = hwecc4_small; info->ecclayout.oobfree[1].length = info->mtd.oobsize - 16; info->ecclayout.oobfree[1].length = mtd->oobsize - 16; goto syndrome_done; } if (chunks == 4) { Loading @@ -833,15 +835,15 @@ static int nand_davinci_probe(struct platform_device *pdev) info->chip.ecc.layout = &info->ecclayout; } ret = nand_scan_tail(&info->mtd); ret = nand_scan_tail(mtd); if (ret < 0) goto err; if (pdata->parts) ret = mtd_device_parse_register(&info->mtd, NULL, NULL, ret = mtd_device_parse_register(mtd, NULL, NULL, pdata->parts, pdata->nr_parts); else ret = mtd_device_register(&info->mtd, NULL, 0); ret = mtd_device_register(mtd, NULL, 0); if (ret < 0) goto err; Loading Loading @@ -871,7 +873,7 @@ static int nand_davinci_remove(struct platform_device *pdev) ecc4_busy = false; spin_unlock_irq(&davinci_nand_lock); nand_release(&info->mtd); nand_release(nand_to_mtd(&info->chip)); clk_disable_unprepare(info->clk); Loading