Commit cd3aafd0 authored by Dmitry Eremin-Solenikov's avatar Dmitry Eremin-Solenikov Committed by Artem Bityutskiy

mtd: bfin-async-flash.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: default avatarDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
parent 81939afc
...@@ -41,7 +41,6 @@ struct async_state { ...@@ -41,7 +41,6 @@ struct async_state {
uint32_t flash_ambctl0, flash_ambctl1; uint32_t flash_ambctl0, flash_ambctl1;
uint32_t save_ambctl0, save_ambctl1; uint32_t save_ambctl0, save_ambctl1;
unsigned long irq_flags; unsigned long irq_flags;
struct mtd_partition *parts;
}; };
static void switch_to_flash(struct async_state *state) static void switch_to_flash(struct async_state *state)
...@@ -165,18 +164,8 @@ static int __devinit bfin_flash_probe(struct platform_device *pdev) ...@@ -165,18 +164,8 @@ static int __devinit bfin_flash_probe(struct platform_device *pdev)
return -ENXIO; return -ENXIO;
} }
ret = parse_mtd_partitions(state->mtd, part_probe_types, &pdata->parts, 0); mtd_device_parse_register(state->mtd, part_probe_types, 0,
if (ret > 0) { pdata->parts, pdata->nr_parts);
pr_devinit(KERN_NOTICE DRIVER_NAME ": Using commandline partition definition\n");
mtd_device_register(state->mtd, pdata->parts, ret);
state->parts = pdata->parts;
} else if (pdata->nr_parts) {
pr_devinit(KERN_NOTICE DRIVER_NAME ": Using board partition definition\n");
mtd_device_register(state->mtd, pdata->parts, pdata->nr_parts);
} else {
pr_devinit(KERN_NOTICE DRIVER_NAME ": no partition info available, registering whole flash at once\n");
mtd_device_register(state->mtd, NULL, 0);
}
platform_set_drvdata(pdev, state); platform_set_drvdata(pdev, state);
...@@ -188,7 +177,6 @@ static int __devexit bfin_flash_remove(struct platform_device *pdev) ...@@ -188,7 +177,6 @@ static int __devexit bfin_flash_remove(struct platform_device *pdev)
struct async_state *state = platform_get_drvdata(pdev); struct async_state *state = platform_get_drvdata(pdev);
gpio_free(state->enet_flash_pin); gpio_free(state->enet_flash_pin);
mtd_device_unregister(state->mtd); mtd_device_unregister(state->mtd);
kfree(state->parts);
map_destroy(state->mtd); map_destroy(state->mtd);
kfree(state); kfree(state);
return 0; return 0;
......
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