Commit 14e66f76 authored by Russell King's avatar Russell King Committed by Russell King

[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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 822e5e72
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <asm/system.h> #include <asm/system.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/flash.h>
#include <asm/irq.h> #include <asm/irq.h>
#include "generic.h" #include "generic.h"
...@@ -283,6 +284,7 @@ static struct platform_device sa11x0mtd_device = { ...@@ -283,6 +284,7 @@ static struct platform_device sa11x0mtd_device = {
void sa11x0_set_flash_data(struct flash_platform_data *flash, void sa11x0_set_flash_data(struct flash_platform_data *flash,
struct resource *res, int nr) struct resource *res, int nr)
{ {
flash->name = "sa1100";
sa11x0mtd_device.dev.platform_data = flash; sa11x0mtd_device.dev.platform_data = flash;
sa11x0mtd_device.resource = res; sa11x0mtd_device.resource = res;
sa11x0mtd_device.num_resources = nr; sa11x0mtd_device.num_resources = nr;
......
...@@ -301,7 +301,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) ...@@ -301,7 +301,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat)
break; break;
subdev->map.name = subdev->name; subdev->map.name = subdev->name;
sprintf(subdev->name, "sa1100-%d", i); sprintf(subdev->name, "%s-%d", plat->name, i);
subdev->plat = plat; subdev->plat = plat;
ret = sa1100_probe_subdev(subdev, res); ret = sa1100_probe_subdev(subdev, res);
...@@ -323,7 +323,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) ...@@ -323,7 +323,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat)
* otherwise fail. Either way, it'll be called "sa1100". * otherwise fail. Either way, it'll be called "sa1100".
*/ */
if (info->num_subdev == 1) { if (info->num_subdev == 1) {
strcpy(info->subdev[0].name, "sa1100"); strcpy(info->subdev[0].name, plat->name);
info->mtd = info->subdev[0].mtd; info->mtd = info->subdev[0].mtd;
ret = 0; ret = 0;
} else if (info->num_subdev > 1) { } else if (info->num_subdev > 1) {
...@@ -336,7 +336,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat) ...@@ -336,7 +336,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat)
cdev[i] = info->subdev[i].mtd; cdev[i] = info->subdev[i].mtd;
info->mtd = mtd_concat_create(cdev, info->num_subdev, info->mtd = mtd_concat_create(cdev, info->num_subdev,
"sa1100"); plat->name);
if (info->mtd == NULL) if (info->mtd == NULL)
ret = -ENXIO; ret = -ENXIO;
#else #else
......
...@@ -14,6 +14,7 @@ struct mtd_partition; ...@@ -14,6 +14,7 @@ struct mtd_partition;
/* /*
* map_name: the map probe function name * map_name: the map probe function name
* name: flash device name (eg, as used with mtdparts=)
* width: width of mapped device * width: width of mapped device
* init: method called at driver/device initialisation * init: method called at driver/device initialisation
* exit: method called at driver/device removal * exit: method called at driver/device removal
...@@ -23,6 +24,7 @@ struct mtd_partition; ...@@ -23,6 +24,7 @@ struct mtd_partition;
*/ */
struct flash_platform_data { struct flash_platform_data {
const char *map_name; const char *map_name;
const char *name;
unsigned int width; unsigned int width;
int (*init)(void); int (*init)(void);
void (*exit)(void); void (*exit)(void);
......
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