aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/maps/pxa2xx-flash.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/maps/pxa2xx-flash.c')
-rw-r--r--drivers/mtd/maps/pxa2xx-flash.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/drivers/mtd/maps/pxa2xx-flash.c b/drivers/mtd/maps/pxa2xx-flash.c
index 7ae137d4b998..411a17df9fc1 100644
--- a/drivers/mtd/maps/pxa2xx-flash.c
+++ b/drivers/mtd/maps/pxa2xx-flash.c
@@ -41,8 +41,6 @@ static void pxa2xx_map_inval_cache(struct map_info *map, unsigned long from,
41} 41}
42 42
43struct pxa2xx_flash_info { 43struct pxa2xx_flash_info {
44 struct mtd_partition *parts;
45 int nr_parts;
46 struct mtd_info *mtd; 44 struct mtd_info *mtd;
47 struct map_info map; 45 struct map_info map;
48}; 46};
@@ -55,9 +53,7 @@ static int __devinit pxa2xx_flash_probe(struct platform_device *pdev)
55{ 53{
56 struct flash_platform_data *flash = pdev->dev.platform_data; 54 struct flash_platform_data *flash = pdev->dev.platform_data;
57 struct pxa2xx_flash_info *info; 55 struct pxa2xx_flash_info *info;
58 struct mtd_partition *parts;
59 struct resource *res; 56 struct resource *res;
60 int ret = 0;
61 57
62 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 58 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
63 if (!res) 59 if (!res)
@@ -71,8 +67,6 @@ static int __devinit pxa2xx_flash_probe(struct platform_device *pdev)
71 info->map.bankwidth = flash->width; 67 info->map.bankwidth = flash->width;
72 info->map.phys = res->start; 68 info->map.phys = res->start;
73 info->map.size = resource_size(res); 69 info->map.size = resource_size(res);
74 info->parts = flash->parts;
75 info->nr_parts = flash->nr_parts;
76 70
77 info->map.virt = ioremap(info->map.phys, info->map.size); 71 info->map.virt = ioremap(info->map.phys, info->map.size);
78 if (!info->map.virt) { 72 if (!info->map.virt) {
@@ -104,18 +98,7 @@ static int __devinit pxa2xx_flash_probe(struct platform_device *pdev)
104 } 98 }
105 info->mtd->owner = THIS_MODULE; 99 info->mtd->owner = THIS_MODULE;
106 100
107 ret = parse_mtd_partitions(info->mtd, probes, &parts, 0); 101 mtd_device_parse_register(info->mtd, probes, 0, NULL, 0);
108
109 if (ret > 0) {
110 info->nr_parts = ret;
111 info->parts = parts;
112 }
113
114 if (!info->nr_parts)
115 printk("Registering %s as whole device\n",
116 info->map.name);
117
118 mtd_device_register(info->mtd, info->parts, info->nr_parts);
119 102
120 platform_set_drvdata(pdev, info); 103 platform_set_drvdata(pdev, info);
121 return 0; 104 return 0;
@@ -133,7 +116,6 @@ static int __devexit pxa2xx_flash_remove(struct platform_device *dev)
133 iounmap(info->map.virt); 116 iounmap(info->map.virt);
134 if (info->map.cached) 117 if (info->map.cached)
135 iounmap(info->map.cached); 118 iounmap(info->map.cached);
136 kfree(info->parts);
137 kfree(info); 119 kfree(info);
138 return 0; 120 return 0;
139} 121}