diff options
author | Marc Zyngier <Marc.Zyngier@arm.com> | 2011-05-18 05:51:55 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-05-20 17:27:34 -0400 |
commit | 667f390bee987d45351402e42008c52cdfb77d76 (patch) | |
tree | 93b6a563915a4013c842302dd45dc3b4ee926d4e /drivers/mtd/maps/physmap.c | |
parent | adf0040096e4b45b9d1c12f59f9045951178ca00 (diff) |
ARM: 6910/1: MTD: physmap: let set_vpp() pass a platform_device instead of a map_info
The set_vpp() method provided by physmap passes a map_info back to
the platform code, which has little relevance as far as the platform
is concerned (this parameter is completely unused).
Instead, pass the platform_device, which can be used in the pismo
driver to retrieve some important information in a nicer way, instead
of the hack that was in place.
The empty set_vpp function in board-at572d940hf_ek.c is left untouched,
as the board/SoC is scheduled for removal.
Cc: Andrew Victor <linux@maxim.org.za>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Philipp Zabel <philipp.zabel@gmail.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Ben Dooks <ben-linux@fluff.org>
Acked-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Acked-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
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 | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/mtd/maps/physmap.c b/drivers/mtd/maps/physmap.c index 49676b7a53a4..1a9b94f0ee54 100644 --- a/drivers/mtd/maps/physmap.c +++ b/drivers/mtd/maps/physmap.c | |||
@@ -74,6 +74,18 @@ static int physmap_flash_remove(struct platform_device *dev) | |||
74 | return 0; | 74 | return 0; |
75 | } | 75 | } |
76 | 76 | ||
77 | static void physmap_set_vpp(struct map_info *map, int state) | ||
78 | { | ||
79 | struct platform_device *pdev; | ||
80 | struct physmap_flash_data *physmap_data; | ||
81 | |||
82 | pdev = (struct platform_device *)map->map_priv_1; | ||
83 | physmap_data = pdev->dev.platform_data; | ||
84 | |||
85 | if (physmap_data->set_vpp) | ||
86 | physmap_data->set_vpp(pdev, state); | ||
87 | } | ||
88 | |||
77 | static const char *rom_probe_types[] = { | 89 | static const char *rom_probe_types[] = { |
78 | "cfi_probe", | 90 | "cfi_probe", |
79 | "jedec_probe", | 91 | "jedec_probe", |
@@ -81,10 +93,7 @@ static const char *rom_probe_types[] = { | |||
81 | "map_rom", | 93 | "map_rom", |
82 | NULL }; | 94 | NULL }; |
83 | #ifdef CONFIG_MTD_PARTITIONS | 95 | #ifdef CONFIG_MTD_PARTITIONS |
84 | static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", | 96 | static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", "afs", |
85 | #ifdef CONFIG_MTD_AFS_PARTS | ||
86 | "afs", | ||
87 | #endif | ||
88 | NULL }; | 97 | NULL }; |
89 | #endif | 98 | #endif |
90 | 99 | ||
@@ -134,8 +143,9 @@ static int physmap_flash_probe(struct platform_device *dev) | |||
134 | info->map[i].phys = dev->resource[i].start; | 143 | info->map[i].phys = dev->resource[i].start; |
135 | info->map[i].size = resource_size(&dev->resource[i]); | 144 | info->map[i].size = resource_size(&dev->resource[i]); |
136 | info->map[i].bankwidth = physmap_data->width; | 145 | info->map[i].bankwidth = physmap_data->width; |
137 | info->map[i].set_vpp = physmap_data->set_vpp; | 146 | info->map[i].set_vpp = physmap_set_vpp; |
138 | info->map[i].pfow_base = physmap_data->pfow_base; | 147 | info->map[i].pfow_base = physmap_data->pfow_base; |
148 | info->map[i].map_priv_1 = (unsigned long)dev; | ||
139 | 149 | ||
140 | info->map[i].virt = devm_ioremap(&dev->dev, info->map[i].phys, | 150 | info->map[i].virt = devm_ioremap(&dev->dev, info->map[i].phys, |
141 | info->map[i].size); | 151 | info->map[i].size); |