diff options
Diffstat (limited to 'drivers/mtd/maps/ixp4xx.c')
| -rw-r--r-- | drivers/mtd/maps/ixp4xx.c | 29 | 
1 files changed, 4 insertions, 25 deletions
diff --git a/drivers/mtd/maps/ixp4xx.c b/drivers/mtd/maps/ixp4xx.c index 155b21942f4..30409015a3d 100644 --- a/drivers/mtd/maps/ixp4xx.c +++ b/drivers/mtd/maps/ixp4xx.c @@ -145,7 +145,6 @@ static void ixp4xx_write16(struct map_info *map, map_word d, unsigned long adr)  struct ixp4xx_flash_info {  	struct mtd_info *mtd;  	struct map_info map; -	struct mtd_partition *partitions;  	struct resource *res;  }; @@ -168,8 +167,6 @@ static int ixp4xx_flash_remove(struct platform_device *dev)  	if (info->map.virt)  		iounmap(info->map.virt); -	kfree(info->partitions); -  	if (info->res) {  		release_resource(info->res);  		kfree(info->res); @@ -185,8 +182,6 @@ static int ixp4xx_flash_probe(struct platform_device *dev)  {  	struct flash_platform_data *plat = dev->dev.platform_data;  	struct ixp4xx_flash_info *info; -	const char *part_type = NULL; -	int nr_parts = 0;  	int err = -1;  	if (!plat) @@ -252,28 +247,12 @@ static int ixp4xx_flash_probe(struct platform_device *dev)  	/* Use the fast version */  	info->map.write = ixp4xx_write16; -	nr_parts = parse_mtd_partitions(info->mtd, probes, &info->partitions, -					dev->resource->start); -	if (nr_parts > 0) { -		part_type = "dynamic"; -	} else { -		info->partitions = plat->parts; -		nr_parts = plat->nr_parts; -		part_type = "static"; -	} -	if (nr_parts == 0) -		printk(KERN_NOTICE "IXP4xx flash: no partition info " -			"available, registering whole flash\n"); -	else -		printk(KERN_NOTICE "IXP4xx flash: using %s partition " -			"definition\n", part_type); - -	err = mtd_device_register(info->mtd, info->partitions, nr_parts); -	if (err) +	err = mtd_device_parse_register(info->mtd, probes, dev->resource->start, +			plat->parts, plat->nr_parts); +	if (err) {  		printk(KERN_ERR "Could not parse partitions\n"); - -	if (err)  		goto Error; +	}  	return 0;  |