Commit 3c6174f9 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Helge Deller

fbdev: da8xx-fb: Fix error handling in .remove()

Even in the presence of problems (here: regulator_disable() might fail),
it's important to unregister all resources acquired during .probe() and
disable the device (i.e. DMA activity) because even if .remove() returns
an error code, the device is removed and the .remove() callback is never
called again later to catch up.

This is a preparation for making platform remove callbacks return void.
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Fixes: 611097d5 ("fbdev: da8xx: add support for a regulator")
parent 25b72d53
...@@ -1076,7 +1076,8 @@ static int fb_remove(struct platform_device *dev) ...@@ -1076,7 +1076,8 @@ static int fb_remove(struct platform_device *dev)
if (par->lcd_supply) { if (par->lcd_supply) {
ret = regulator_disable(par->lcd_supply); ret = regulator_disable(par->lcd_supply);
if (ret) if (ret)
return ret; dev_warn(&dev->dev, "Failed to disable regulator (%pe)\n",
ERR_PTR(ret));
} }
lcd_disable_raster(DA8XX_FRAME_WAIT); lcd_disable_raster(DA8XX_FRAME_WAIT);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment