Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be867814 authored by Damien Cassou's avatar Damien Cassou Committed by Florian Tobias Schandinat
Browse files

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: default avatarDamien Cassou <damien.cassou@lifl.fr>
Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
parent d5c0eed0
Loading
Loading
Loading
Loading
+6 −11
Original line number Original line Diff line number Diff line
@@ -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)
	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)


	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)


	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);