mtd: gpio-addr-flash: convert to mtd_device_register()
authorJamie Iles <jamie@jamieiles.com>
Mon, 23 May 2011 09:23:02 +0000 (10:23 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 25 May 2011 01:21:43 +0000 (02:21 +0100)
Convert to mtd_device_register() and remove the CONFIG_MTD_PARTITIONS
preprocessor conditionals as partitioning is always available.

Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/maps/Kconfig
drivers/mtd/maps/gpio-addr-flash.c

index 93d47414c06d2c75c893342ca9a06b726a900b31..4cda05d2e93c60f51ad904b322ffd1ea648327fd 100644 (file)
@@ -464,7 +464,6 @@ config MTD_GPIO_ADDR
        tristate "GPIO-assisted Flash Chip Support"
        depends on GENERIC_GPIO || GPIOLIB
        depends on MTD_COMPLEX_MAPPINGS
-       select MTD_PARTITIONS
        help
          Map driver which allows flashes to be partially physically addressed
          and assisted by GPIOs.
index af5707a80205c34985b2cba5cf2ceffce91cca76..7568c5f8b8ae648cb88754e94b34e03ec19c2d65 100644 (file)
@@ -155,9 +155,7 @@ static void gf_copy_to(struct map_info *map, unsigned long to, const void *from,
        memcpy_toio(map->virt + (to % state->win_size), from, len);
 }
 
-#ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
-#endif
 
 /**
  * gpio_flash_probe() - setup a mapping for a GPIO assisted flash
@@ -189,7 +187,7 @@ static const char *part_probe_types[] = { "cmdlinepart", "RedBoot", NULL };
  */
 static int __devinit gpio_flash_probe(struct platform_device *pdev)
 {
-       int ret;
+       int nr_parts;
        size_t i, arr_size;
        struct physmap_flash_data *pdata;
        struct resource *memory;
@@ -254,24 +252,21 @@ static int __devinit gpio_flash_probe(struct platform_device *pdev)
                return -ENXIO;
        }
 
-#ifdef CONFIG_MTD_PARTITIONS
-       ret = parse_mtd_partitions(state->mtd, part_probe_types, &pdata->parts, 0);
-       if (ret > 0) {
+       nr_parts = parse_mtd_partitions(state->mtd, part_probe_types,
+                                       &pdata->parts, 0);
+       if (nr_parts > 0) {
                pr_devinit(KERN_NOTICE PFX "Using commandline partition definition\n");
-               add_mtd_partitions(state->mtd, pdata->parts, ret);
                kfree(pdata->parts);
-
        } else if (pdata->nr_parts) {
                pr_devinit(KERN_NOTICE PFX "Using board partition definition\n");
-               add_mtd_partitions(state->mtd, pdata->parts, pdata->nr_parts);
-
-       } else
-#endif
-       {
+               nr_parts = pdata->nr_parts;
+       } else {
                pr_devinit(KERN_NOTICE PFX "no partition info available, registering whole flash at once\n");
-               add_mtd_device(state->mtd);
+               nr_parts = 0;
        }
 
+       mtd_device_register(state->mtd, pdata->parts, nr_parts);
+
        return 0;
 }
 
@@ -282,9 +277,7 @@ static int __devexit gpio_flash_remove(struct platform_device *pdev)
        do {
                gpio_free(state->gpio_addrs[i]);
        } while (++i < state->gpio_count);
-#ifdef CONFIG_MTD_PARTITIONS
-       del_mtd_partitions(state->mtd);
-#endif
+       mtd_device_unregister(state->mtd);
        map_destroy(state->mtd);
        kfree(state);
        return 0;