|
@@ -57,7 +57,6 @@ struct omap2_onenand {
|
|
|
unsigned long phys_base;
|
|
|
int gpio_irq;
|
|
|
struct mtd_info mtd;
|
|
|
- struct mtd_partition *parts;
|
|
|
struct onenand_chip onenand;
|
|
|
struct completion irq_done;
|
|
|
struct completion dma_done;
|
|
@@ -752,13 +751,9 @@ static int __devinit omap2_onenand_probe(struct platform_device *pdev)
|
|
|
if ((r = onenand_scan(&c->mtd, 1)) < 0)
|
|
|
goto err_release_regulator;
|
|
|
|
|
|
- r = parse_mtd_partitions(&c->mtd, NULL, &c->parts, 0);
|
|
|
- if (r > 0)
|
|
|
- r = mtd_device_register(&c->mtd, c->parts, r);
|
|
|
- else if (pdata->parts != NULL)
|
|
|
- r = mtd_device_register(&c->mtd, pdata->parts, pdata->nr_parts);
|
|
|
- else
|
|
|
- r = mtd_device_register(&c->mtd, NULL, 0);
|
|
|
+ r = mtd_device_parse_register(&c->mtd, NULL, 0,
|
|
|
+ pdata ? pdata->parts : NULL,
|
|
|
+ pdata ? pdata->nr_parts : 0);
|
|
|
if (r)
|
|
|
goto err_release_onenand;
|
|
|
|
|
@@ -785,7 +780,6 @@ err_release_mem_region:
|
|
|
err_free_cs:
|
|
|
gpmc_cs_free(c->gpmc_cs);
|
|
|
err_kfree:
|
|
|
- kfree(c->parts);
|
|
|
kfree(c);
|
|
|
|
|
|
return r;
|
|
@@ -808,7 +802,6 @@ static int __devexit omap2_onenand_remove(struct platform_device *pdev)
|
|
|
iounmap(c->onenand.base);
|
|
|
release_mem_region(c->phys_base, ONENAND_IO_SIZE);
|
|
|
gpmc_cs_free(c->gpmc_cs);
|
|
|
- kfree(c->parts);
|
|
|
kfree(c);
|
|
|
|
|
|
return 0;
|