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); |
