diff options
author | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 2011-06-02 10:00:57 -0400 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@intel.com> | 2011-09-11 08:02:09 -0400 |
commit | 009c840770fda0165302e9853192a7f0677098b3 (patch) | |
tree | c05f23bf47a9453303bb147b58b92fac4e4110ef /drivers/mtd/nand/plat_nand.c | |
parent | c9dd375f553e6ff1862401decb1b585929285b56 (diff) |
mtd: plat_nand.c: use mtd_device_parse_register
Replace custom invocations of parse_mtd_partitions and mtd_device_register
with common mtd_device_parse_register call. This would bring: standard
handling of all errors, fallback to default partitions, etc.
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'drivers/mtd/nand/plat_nand.c')
-rw-r--r-- | drivers/mtd/nand/plat_nand.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c index 746a723b4933..ea8e1234e0e2 100644 --- a/drivers/mtd/nand/plat_nand.c +++ b/drivers/mtd/nand/plat_nand.c | |||
@@ -21,8 +21,6 @@ struct plat_nand_data { | |||
21 | struct nand_chip chip; | 21 | struct nand_chip chip; |
22 | struct mtd_info mtd; | 22 | struct mtd_info mtd; |
23 | void __iomem *io_base; | 23 | void __iomem *io_base; |
24 | int nr_parts; | ||
25 | struct mtd_partition *parts; | ||
26 | }; | 24 | }; |
27 | 25 | ||
28 | /* | 26 | /* |
@@ -100,21 +98,9 @@ static int __devinit plat_nand_probe(struct platform_device *pdev) | |||
100 | goto out; | 98 | goto out; |
101 | } | 99 | } |
102 | 100 | ||
103 | if (pdata->chip.part_probe_types) { | 101 | err = mtd_device_parse_register(&data->mtd, |
104 | err = parse_mtd_partitions(&data->mtd, | 102 | pdata->chip.part_probe_types, 0, |
105 | pdata->chip.part_probe_types, | 103 | pdata->chip.partitions, pdata->chip.nr_partitions); |
106 | &data->parts, 0); | ||
107 | if (err > 0) { | ||
108 | mtd_device_register(&data->mtd, data->parts, err); | ||
109 | return 0; | ||
110 | } | ||
111 | } | ||
112 | if (pdata->chip.partitions) { | ||
113 | data->parts = pdata->chip.partitions; | ||
114 | err = mtd_device_register(&data->mtd, data->parts, | ||
115 | pdata->chip.nr_partitions); | ||
116 | } else | ||
117 | err = mtd_device_register(&data->mtd, NULL, 0); | ||
118 | 104 | ||
119 | if (!err) | 105 | if (!err) |
120 | return err; | 106 | return err; |
@@ -144,8 +130,6 @@ static int __devexit plat_nand_remove(struct platform_device *pdev) | |||
144 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 130 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
145 | 131 | ||
146 | nand_release(&data->mtd); | 132 | nand_release(&data->mtd); |
147 | if (data->parts && data->parts != pdata->chip.partitions) | ||
148 | kfree(data->parts); | ||
149 | if (pdata->ctrl.remove) | 133 | if (pdata->ctrl.remove) |
150 | pdata->ctrl.remove(pdev); | 134 | pdata->ctrl.remove(pdev); |
151 | iounmap(data->io_base); | 135 | iounmap(data->io_base); |