diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-10-29 11:08:31 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-10-29 11:08:31 -0400 |
commit | 14e66f767f5e8d023e098b475dc24ddc9a5dbdfd (patch) | |
tree | 11d0835775cb00a164b2e3d4b23f282a002277cd | |
parent | 822e5e72697ce06e4425c17d161b0482c7d9b6d4 (diff) |
[ARM] Allow MTD device name to be passed via platform data
Allow SA1100 devices to pass the name of the flash device to the
SA1100 map driver.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-sa1100/generic.c | 2 | ||||
-rw-r--r-- | drivers/mtd/maps/sa1100-flash.c | 6 | ||||
-rw-r--r-- | include/asm-arm/mach/flash.h | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c index 93619497779c..f94b0fbcdcc8 100644 --- a/arch/arm/mach-sa1100/generic.c +++ b/arch/arm/mach-sa1100/generic.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <asm/system.h> | 23 | #include <asm/system.h> |
24 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
25 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
26 | #include <asm/mach/flash.h> | ||
26 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
27 | 28 | ||
28 | #include "generic.h" | 29 | #include "generic.h" |
@@ -283,6 +284,7 @@ static struct platform_device sa11x0mtd_device = { | |||
283 | void sa11x0_set_flash_data(struct flash_platform_data *flash, | 284 | void sa11x0_set_flash_data(struct flash_platform_data *flash, |
284 | struct resource *res, int nr) | 285 | struct resource *res, int nr) |
285 | { | 286 | { |
287 | flash->name = "sa1100"; | ||
286 | sa11x0mtd_device.dev.platform_data = flash; | 288 | sa11x0mtd_device.dev.platform_data = flash; |
287 | sa11x0mtd_device.resource = res; | 289 | sa11x0mtd_device.resource = res; |
288 | sa11x0mtd_device.num_resources = nr; | 290 | sa11x0mtd_device.num_resources = nr; |
diff --git a/drivers/mtd/maps/sa1100-flash.c b/drivers/mtd/maps/sa1100-flash.c index c38c2c311b8e..acf01ef9b575 100644 --- a/drivers/mtd/maps/sa1100-flash.c +++ b/drivers/mtd/maps/sa1100-flash.c | |||
@@ -301,7 +301,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) | |||
301 | break; | 301 | break; |
302 | 302 | ||
303 | subdev->map.name = subdev->name; | 303 | subdev->map.name = subdev->name; |
304 | sprintf(subdev->name, "sa1100-%d", i); | 304 | sprintf(subdev->name, "%s-%d", plat->name, i); |
305 | subdev->plat = plat; | 305 | subdev->plat = plat; |
306 | 306 | ||
307 | ret = sa1100_probe_subdev(subdev, res); | 307 | ret = sa1100_probe_subdev(subdev, res); |
@@ -323,7 +323,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) | |||
323 | * otherwise fail. Either way, it'll be called "sa1100". | 323 | * otherwise fail. Either way, it'll be called "sa1100". |
324 | */ | 324 | */ |
325 | if (info->num_subdev == 1) { | 325 | if (info->num_subdev == 1) { |
326 | strcpy(info->subdev[0].name, "sa1100"); | 326 | strcpy(info->subdev[0].name, plat->name); |
327 | info->mtd = info->subdev[0].mtd; | 327 | info->mtd = info->subdev[0].mtd; |
328 | ret = 0; | 328 | ret = 0; |
329 | } else if (info->num_subdev > 1) { | 329 | } else if (info->num_subdev > 1) { |
@@ -336,7 +336,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) | |||
336 | cdev[i] = info->subdev[i].mtd; | 336 | cdev[i] = info->subdev[i].mtd; |
337 | 337 | ||
338 | info->mtd = mtd_concat_create(cdev, info->num_subdev, | 338 | info->mtd = mtd_concat_create(cdev, info->num_subdev, |
339 | "sa1100"); | 339 | plat->name); |
340 | if (info->mtd == NULL) | 340 | if (info->mtd == NULL) |
341 | ret = -ENXIO; | 341 | ret = -ENXIO; |
342 | #else | 342 | #else |
diff --git a/include/asm-arm/mach/flash.h b/include/asm-arm/mach/flash.h index a92887d4b2cb..cd57436d9874 100644 --- a/include/asm-arm/mach/flash.h +++ b/include/asm-arm/mach/flash.h | |||
@@ -14,6 +14,7 @@ struct mtd_partition; | |||
14 | 14 | ||
15 | /* | 15 | /* |
16 | * map_name: the map probe function name | 16 | * map_name: the map probe function name |
17 | * name: flash device name (eg, as used with mtdparts=) | ||
17 | * width: width of mapped device | 18 | * width: width of mapped device |
18 | * init: method called at driver/device initialisation | 19 | * init: method called at driver/device initialisation |
19 | * exit: method called at driver/device removal | 20 | * exit: method called at driver/device removal |
@@ -23,6 +24,7 @@ struct mtd_partition; | |||
23 | */ | 24 | */ |
24 | struct flash_platform_data { | 25 | struct flash_platform_data { |
25 | const char *map_name; | 26 | const char *map_name; |
27 | const char *name; | ||
26 | unsigned int width; | 28 | unsigned int width; |
27 | int (*init)(void); | 29 | int (*init)(void); |
28 | void (*exit)(void); | 30 | void (*exit)(void); |