提交 be867814 编写于 作者: D Damien Cassou 提交者: Florian Tobias Schandinat

drivers/video/ep93xx-fb.c: use devm_ functions

The various devm_ functions allocate memory that is released when a driver
detaches.  This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: NDamien Cassou <damien.cassou@lifl.fr>
Signed-off-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
上级 d5c0eed0
...@@ -529,7 +529,8 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) ...@@ -529,7 +529,8 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
* any of the framebuffer registers. * any of the framebuffer registers.
*/ */
fbi->res = res; fbi->res = res;
fbi->mmio_base = ioremap(res->start, resource_size(res)); fbi->mmio_base = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
if (!fbi->mmio_base) { if (!fbi->mmio_base) {
err = -ENXIO; err = -ENXIO;
goto failed_resource; goto failed_resource;
...@@ -553,20 +554,20 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) ...@@ -553,20 +554,20 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
if (err == 0) { if (err == 0) {
dev_err(info->dev, "No suitable video mode found\n"); dev_err(info->dev, "No suitable video mode found\n");
err = -EINVAL; err = -EINVAL;
goto failed_mode; goto failed_resource;
} }
if (mach_info->setup) { if (mach_info->setup) {
err = mach_info->setup(pdev); err = mach_info->setup(pdev);
if (err) if (err)
goto failed_mode; goto failed_resource;
} }
err = ep93xxfb_check_var(&info->var, info); err = ep93xxfb_check_var(&info->var, info);
if (err) if (err)
goto failed_check; goto failed_check;
fbi->clk = clk_get(info->dev, NULL); fbi->clk = devm_clk_get(&pdev->dev, NULL);
if (IS_ERR(fbi->clk)) { if (IS_ERR(fbi->clk)) {
err = PTR_ERR(fbi->clk); err = PTR_ERR(fbi->clk);
fbi->clk = NULL; fbi->clk = NULL;
...@@ -578,19 +579,15 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev) ...@@ -578,19 +579,15 @@ static int __devinit ep93xxfb_probe(struct platform_device *pdev)
err = register_framebuffer(info); err = register_framebuffer(info);
if (err) if (err)
goto failed; goto failed_check;
dev_info(info->dev, "registered. Mode = %dx%d-%d\n", dev_info(info->dev, "registered. Mode = %dx%d-%d\n",
info->var.xres, info->var.yres, info->var.bits_per_pixel); info->var.xres, info->var.yres, info->var.bits_per_pixel);
return 0; return 0;
failed:
clk_put(fbi->clk);
failed_check: failed_check:
if (fbi->mach_info->teardown) if (fbi->mach_info->teardown)
fbi->mach_info->teardown(pdev); fbi->mach_info->teardown(pdev);
failed_mode:
iounmap(fbi->mmio_base);
failed_resource: failed_resource:
ep93xxfb_dealloc_videomem(info); ep93xxfb_dealloc_videomem(info);
failed_videomem: failed_videomem:
...@@ -609,8 +606,6 @@ static int __devexit ep93xxfb_remove(struct platform_device *pdev) ...@@ -609,8 +606,6 @@ static int __devexit ep93xxfb_remove(struct platform_device *pdev)
unregister_framebuffer(info); unregister_framebuffer(info);
clk_disable(fbi->clk); clk_disable(fbi->clk);
clk_put(fbi->clk);
iounmap(fbi->mmio_base);
ep93xxfb_dealloc_videomem(info); ep93xxfb_dealloc_videomem(info);
fb_dealloc_cmap(&info->cmap); fb_dealloc_cmap(&info->cmap);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册