Commit 0324e646 authored by Boris BREZILLON's avatar Boris BREZILLON Committed by Brian Norris

mtd: nand: sharpsl: use the mtd instance embedded in struct nand_chip

struct nand_chip now embeds an mtd device. Make use of this mtd instance.
Signed-off-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 9c9eef89
...@@ -29,13 +29,15 @@ ...@@ -29,13 +29,15 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
struct sharpsl_nand { struct sharpsl_nand {
struct mtd_info mtd;
struct nand_chip chip; struct nand_chip chip;
void __iomem *io; void __iomem *io;
}; };
#define mtd_to_sharpsl(_mtd) container_of(_mtd, struct sharpsl_nand, mtd) static inline struct sharpsl_nand *mtd_to_sharpsl(struct mtd_info *mtd)
{
return container_of(mtd_to_nand(mtd), struct sharpsl_nand, chip);
}
/* register offset */ /* register offset */
#define ECCLPLB 0x00 /* line parity 7 - 0 bit */ #define ECCLPLB 0x00 /* line parity 7 - 0 bit */
...@@ -109,6 +111,7 @@ static int sharpsl_nand_calculate_ecc(struct mtd_info *mtd, const u_char * dat, ...@@ -109,6 +111,7 @@ static int sharpsl_nand_calculate_ecc(struct mtd_info *mtd, const u_char * dat,
static int sharpsl_nand_probe(struct platform_device *pdev) static int sharpsl_nand_probe(struct platform_device *pdev)
{ {
struct nand_chip *this; struct nand_chip *this;
struct mtd_info *mtd;
struct resource *r; struct resource *r;
int err = 0; int err = 0;
struct sharpsl_nand *sharpsl; struct sharpsl_nand *sharpsl;
...@@ -143,8 +146,9 @@ static int sharpsl_nand_probe(struct platform_device *pdev) ...@@ -143,8 +146,9 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
this = (struct nand_chip *)(&sharpsl->chip); this = (struct nand_chip *)(&sharpsl->chip);
/* Link the private data with the MTD structure */ /* Link the private data with the MTD structure */
sharpsl->mtd.priv = this; mtd = nand_to_mtd(this);
sharpsl->mtd.dev.parent = &pdev->dev; mtd->priv = this;
mtd->dev.parent = &pdev->dev;
platform_set_drvdata(pdev, sharpsl); platform_set_drvdata(pdev, sharpsl);
...@@ -173,14 +177,14 @@ static int sharpsl_nand_probe(struct platform_device *pdev) ...@@ -173,14 +177,14 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
this->ecc.correct = nand_correct_data; this->ecc.correct = nand_correct_data;
/* Scan to find existence of the device */ /* Scan to find existence of the device */
err = nand_scan(&sharpsl->mtd, 1); err = nand_scan(mtd, 1);
if (err) if (err)
goto err_scan; goto err_scan;
/* Register the partitions */ /* Register the partitions */
sharpsl->mtd.name = "sharpsl-nand"; mtd->name = "sharpsl-nand";
err = mtd_device_parse_register(&sharpsl->mtd, NULL, NULL, err = mtd_device_parse_register(mtd, NULL, NULL,
data->partitions, data->nr_partitions); data->partitions, data->nr_partitions);
if (err) if (err)
goto err_add; goto err_add;
...@@ -189,7 +193,7 @@ static int sharpsl_nand_probe(struct platform_device *pdev) ...@@ -189,7 +193,7 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
return 0; return 0;
err_add: err_add:
nand_release(&sharpsl->mtd); nand_release(mtd);
err_scan: err_scan:
iounmap(sharpsl->io); iounmap(sharpsl->io);
...@@ -207,7 +211,7 @@ static int sharpsl_nand_remove(struct platform_device *pdev) ...@@ -207,7 +211,7 @@ static int sharpsl_nand_remove(struct platform_device *pdev)
struct sharpsl_nand *sharpsl = platform_get_drvdata(pdev); struct sharpsl_nand *sharpsl = platform_get_drvdata(pdev);
/* Release resources, unregister device */ /* Release resources, unregister device */
nand_release(&sharpsl->mtd); nand_release(nand_to_mtd(&sharpsl->chip));
iounmap(sharpsl->io); iounmap(sharpsl->io);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment