mtd: davinci_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>
This commit is contained in:
committed by
Artem Bityutskiy
parent
bbd86c9c33
commit
5b55b1eb21
@@ -57,7 +57,6 @@ struct davinci_nand_info {
|
|||||||
|
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
bool partitioned;
|
|
||||||
|
|
||||||
bool is_readmode;
|
bool is_readmode;
|
||||||
|
|
||||||
@@ -530,8 +529,6 @@ static int __init nand_davinci_probe(struct platform_device *pdev)
|
|||||||
int ret;
|
int ret;
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
nand_ecc_modes_t ecc_mode;
|
nand_ecc_modes_t ecc_mode;
|
||||||
struct mtd_partition *mtd_parts = NULL;
|
|
||||||
int mtd_parts_nb = 0;
|
|
||||||
|
|
||||||
/* insist on board-specific configuration */
|
/* insist on board-specific configuration */
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
@@ -753,26 +750,8 @@ syndrome_done:
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_scan;
|
goto err_scan;
|
||||||
|
|
||||||
mtd_parts_nb = parse_mtd_partitions(&info->mtd, NULL, &mtd_parts, 0);
|
ret = mtd_device_parse_register(&info->mtd, NULL, 0,
|
||||||
|
pdata->parts, pdata->nr_parts);
|
||||||
if (mtd_parts_nb <= 0) {
|
|
||||||
mtd_parts = pdata->parts;
|
|
||||||
mtd_parts_nb = pdata->nr_parts;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Register any partitions */
|
|
||||||
if (mtd_parts_nb > 0) {
|
|
||||||
ret = mtd_device_register(&info->mtd, mtd_parts,
|
|
||||||
mtd_parts_nb);
|
|
||||||
if (ret == 0)
|
|
||||||
info->partitioned = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If there's no partition info, just package the whole chip
|
|
||||||
* as a single MTD device.
|
|
||||||
*/
|
|
||||||
if (!info->partitioned)
|
|
||||||
ret = mtd_device_register(&info->mtd, NULL, 0) ? -ENODEV : 0;
|
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err_scan;
|
goto err_scan;
|
||||||
|
Reference in New Issue
Block a user