diff options
author | Marc Zyngier <Marc.Zyngier@arm.com> | 2011-05-18 05:51:48 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-05-20 17:26:53 -0400 |
commit | b7281ca2a4b00044c60c25059f467d05772cdbe3 (patch) | |
tree | e60e3bf6e3fe2ed5b458fd135f7dd8327ce93374 /drivers/mtd/maps/physmap.c | |
parent | c1d10d18c542278b7fbc413c289d3cb6219da6b3 (diff) |
ARM: 6904/1: MTD: Add integrator-flash feature to physmap
In the process of moving platforms away from integrator-flash
(aka armflash), add to physmap the few features that make
armflash unique:
- optionnal probing for the AFS partition type
- init() and exit() methods, used by Integrator to control
write access to the various onboard programmable components
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/mtd/maps/physmap.c')
-rw-r--r-- | drivers/mtd/maps/physmap.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c index 7522df4f71f1..49676b7a53a4 100644 --- a/drivers/mtd/maps/physmap.c +++ b/drivers/mtd/maps/physmap.c | |||
@@ -67,6 +67,10 @@ static int physmap_flash_remove(struct platform_device *dev) | |||
67 | if (info->mtd[i] != NULL) | 67 | if (info->mtd[i] != NULL) |
68 | map_destroy(info->mtd[i]); | 68 | map_destroy(info->mtd[i]); |
69 | } | 69 | } |
70 | |||
71 | if (physmap_data->exit) | ||
72 | physmap_data->exit(dev); | ||
73 | |||
70 | return 0; | 74 | return 0; |
71 | } | 75 | } |
72 | 76 | ||
@@ -77,7 +81,11 @@ static const char *rom_probe_types[] = { | |||
77 | "map_rom", | 81 | "map_rom", |
78 | NULL }; | 82 | NULL }; |
79 | #ifdef CONFIG_MTD_PARTITIONS | 83 | #ifdef CONFIG_MTD_PARTITIONS |
80 | static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL }; | 84 | static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", |
85 | #ifdef CONFIG_MTD_AFS_PARTS | ||
86 | "afs", | ||
87 | #endif | ||
88 | NULL }; | ||
81 | #endif | 89 | #endif |
82 | 90 | ||
83 | static int physmap_flash_probe(struct platform_device *dev) | 91 | static int physmap_flash_probe(struct platform_device *dev) |
@@ -100,6 +108,12 @@ static int physmap_flash_probe(struct platform_device *dev) | |||
100 | goto err_out; | 108 | goto err_out; |
101 | } | 109 | } |
102 | 110 | ||
111 | if (physmap_data->init) { | ||
112 | err = physmap_data->init(dev); | ||
113 | if (err) | ||
114 | goto err_out; | ||
115 | } | ||
116 | |||
103 | platform_set_drvdata(dev, info); | 117 | platform_set_drvdata(dev, info); |
104 | 118 | ||
105 | for (i = 0; i < dev->num_resources; i++) { | 119 | for (i = 0; i < dev->num_resources; i++) { |