mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-20 01:24:39 +08:00
video: xilinxfb: Simplify error path
devm_iounmap is called automatically that's why remove it from the code dev_set_drvdata(dev, NULL) is called by generic code after device_release or on probe failure. Signed-off-by: Michal Simek <michal.simek@xilinx.com> Reviewed-by: Jingoo Han <jg1.han@samsung.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
5c128df747
commit
718b90ac4c
@ -260,10 +260,9 @@ static int xilinxfb_assign(struct platform_device *pdev,
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
drvdata->regs = devm_ioremap_resource(&pdev->dev, res);
|
||||
if (IS_ERR(drvdata->regs)) {
|
||||
rc = PTR_ERR(drvdata->regs);
|
||||
goto err_region;
|
||||
}
|
||||
if (IS_ERR(drvdata->regs))
|
||||
return PTR_ERR(drvdata->regs);
|
||||
|
||||
drvdata->regs_phys = res->start;
|
||||
}
|
||||
|
||||
@ -279,11 +278,7 @@ static int xilinxfb_assign(struct platform_device *pdev,
|
||||
|
||||
if (!drvdata->fb_virt) {
|
||||
dev_err(dev, "Could not allocate frame buffer memory\n");
|
||||
rc = -ENOMEM;
|
||||
if (drvdata->flags & BUS_ACCESS_FLAG)
|
||||
goto err_fbmem;
|
||||
else
|
||||
goto err_region;
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
/* Clear (turn to black) the framebuffer */
|
||||
@ -363,11 +358,6 @@ err_cmap:
|
||||
/* Turn off the display */
|
||||
xilinx_fb_out32(drvdata, REG_CTRL, 0);
|
||||
|
||||
err_fbmem:
|
||||
if (drvdata->flags & BUS_ACCESS_FLAG)
|
||||
devm_iounmap(dev, drvdata->regs);
|
||||
|
||||
err_region:
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -392,11 +382,9 @@ static int xilinxfb_release(struct device *dev)
|
||||
/* Turn off the display */
|
||||
xilinx_fb_out32(drvdata, REG_CTRL, 0);
|
||||
|
||||
/* Release the resources, as allocated based on interface */
|
||||
if (drvdata->flags & BUS_ACCESS_FLAG)
|
||||
devm_iounmap(dev, drvdata->regs);
|
||||
#ifdef CONFIG_PPC_DCR
|
||||
else
|
||||
/* Release the resources, as allocated based on interface */
|
||||
if (!(drvdata->flags & BUS_ACCESS_FLAG))
|
||||
dcr_unmap(drvdata->dcr_host, drvdata->dcr_len);
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user