|
@@ -43,7 +43,6 @@ struct platram_info {
|
|
|
struct device *dev;
|
|
|
struct mtd_info *mtd;
|
|
|
struct map_info map;
|
|
|
- struct resource *area;
|
|
|
struct platdata_mtd_ram *pdata;
|
|
|
};
|
|
|
|
|
@@ -97,16 +96,6 @@ static int platram_remove(struct platform_device *pdev)
|
|
|
|
|
|
platram_setrw(info, PLATRAM_RO);
|
|
|
|
|
|
- /* release resources */
|
|
|
-
|
|
|
- if (info->area) {
|
|
|
- release_resource(info->area);
|
|
|
- kfree(info->area);
|
|
|
- }
|
|
|
-
|
|
|
- if (info->map.virt != NULL)
|
|
|
- iounmap(info->map.virt);
|
|
|
-
|
|
|
kfree(info);
|
|
|
|
|
|
return 0;
|
|
@@ -147,12 +136,11 @@ static int platram_probe(struct platform_device *pdev)
|
|
|
info->pdata = pdata;
|
|
|
|
|
|
/* get the resource for the memory mapping */
|
|
|
-
|
|
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
-
|
|
|
- if (res == NULL) {
|
|
|
- dev_err(&pdev->dev, "no memory resource specified\n");
|
|
|
- err = -ENOENT;
|
|
|
+ info->map.virt = devm_ioremap_resource(&pdev->dev, res);
|
|
|
+ if (IS_ERR(info->map.virt)) {
|
|
|
+ err = PTR_ERR(info->map.virt);
|
|
|
+ dev_err(&pdev->dev, "failed to ioremap() region\n");
|
|
|
goto exit_free;
|
|
|
}
|
|
|
|
|
@@ -167,26 +155,8 @@ static int platram_probe(struct platform_device *pdev)
|
|
|
(char *)pdata->mapname : (char *)pdev->name;
|
|
|
info->map.bankwidth = pdata->bankwidth;
|
|
|
|
|
|
- /* register our usage of the memory area */
|
|
|
-
|
|
|
- info->area = request_mem_region(res->start, info->map.size, pdev->name);
|
|
|
- if (info->area == NULL) {
|
|
|
- dev_err(&pdev->dev, "failed to request memory region\n");
|
|
|
- err = -EIO;
|
|
|
- goto exit_free;
|
|
|
- }
|
|
|
-
|
|
|
- /* remap the memory area */
|
|
|
-
|
|
|
- info->map.virt = ioremap(res->start, info->map.size);
|
|
|
dev_dbg(&pdev->dev, "virt %p, %lu bytes\n", info->map.virt, info->map.size);
|
|
|
|
|
|
- if (info->map.virt == NULL) {
|
|
|
- dev_err(&pdev->dev, "failed to ioremap() region\n");
|
|
|
- err = -EIO;
|
|
|
- goto exit_free;
|
|
|
- }
|
|
|
-
|
|
|
simple_map_init(&info->map);
|
|
|
|
|
|
dev_dbg(&pdev->dev, "initialised map, probing for mtd\n");
|