[ARM] Allow MTD device name to be passed via platform data
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sat, 29 Oct 2005 15:08:31 +0000 (16:08 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 29 Oct 2005 15:08:31 +0000 (16:08 +0100)
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>
arch/arm/mach-sa1100/generic.c
drivers/mtd/maps/sa1100-flash.c
include/asm-arm/mach/flash.h

index 9361949..f94b0fb 100644 (file)
@@ -23,6 +23,7 @@
 #include <asm/system.h>
 #include <asm/pgtable.h>
 #include <asm/mach/map.h>
+#include <asm/mach/flash.h>
 #include <asm/irq.h>
 
 #include "generic.h"
@@ -283,6 +284,7 @@ static struct platform_device sa11x0mtd_device = {
 void sa11x0_set_flash_data(struct flash_platform_data *flash,
                           struct resource *res, int nr)
 {
+       flash->name = "sa1100";
        sa11x0mtd_device.dev.platform_data = flash;
        sa11x0mtd_device.resource = res;
        sa11x0mtd_device.num_resources = nr;
index c38c2c3..acf01ef 100644 (file)
@@ -301,7 +301,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat)
                        break;
 
                subdev->map.name = subdev->name;
-               sprintf(subdev->name, "sa1100-%d", i);
+               sprintf(subdev->name, "%s-%d", plat->name, i);
                subdev->plat = plat;
 
                ret = sa1100_probe_subdev(subdev, res);
@@ -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".
         */
        if (info->num_subdev == 1) {
-               strcpy(info->subdev[0].name, "sa1100");
+               strcpy(info->subdev[0].name, plat->name);
                info->mtd = info->subdev[0].mtd;
                ret = 0;
        } else if (info->num_subdev > 1) {
@@ -336,7 +336,7 @@ sa1100_setup_mtd(struct platform_device *pdev, struct flash_platform_data *plat)
                        cdev[i] = info->subdev[i].mtd;
 
                info->mtd = mtd_concat_create(cdev, info->num_subdev,
-                                             "sa1100");
+                                             plat->name);
                if (info->mtd == NULL)
                        ret = -ENXIO;
 #else
index a92887d..cd57436 100644 (file)
@@ -14,6 +14,7 @@ struct mtd_partition;
 
 /*
  * map_name:   the map probe function name
+ * name:       flash device name (eg, as used with mtdparts=)
  * width:      width of mapped device
  * init:       method called at driver/device initialisation
  * exit:       method called at driver/device removal
@@ -23,6 +24,7 @@ struct mtd_partition;
  */
 struct flash_platform_data {
        const char      *map_name;
+       const char      *name;
        unsigned int    width;
        int             (*init)(void);
        void            (*exit)(void);