summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
diff options
context:
space:
mode:
authorLaurent Pinchart2018-09-08 10:45:14 +0200
committerTomi Valkeinen2019-03-18 10:42:11 +0100
commit3f3623dd0f881dd5615097fdc9eeeb1ec732e59a (patch)
tree4e9d22064b71ce48e28efc4478b79bdb35be3d46 /drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
parentdrm/omap: Remove connection checks from display .enable() and .remove() (diff)
downloadkernel-qcow2-linux-3f3623dd0f881dd5615097fdc9eeeb1ec732e59a.tar.gz
kernel-qcow2-linux-3f3623dd0f881dd5615097fdc9eeeb1ec732e59a.tar.xz
kernel-qcow2-linux-3f3623dd0f881dd5615097fdc9eeeb1ec732e59a.zip
drm/omap: Remove enable checks from display .enable() and .remove()
The displays (connectors, panels and encoders) bail out from their .enable() and .disable() handlers if the dss device is already enabled or disabled. Those safety checks are not needed when the functions are called through the omapdss_device_ops, as the .enable() and .disable() handlers are called from the DRM atomic helpers that already guarantee that no double enabling or disabling can occur. However, the handlers are also called directly from the .remove() handler. While this shouldn't be needed either as the modules can't be removed as long as the device is in use, it's still a good practice to disable the device explicitly. There is currently a safety check in .remove() in some drivers but not all of them. Remove the safety checks from the .enable() and .disable() handlers, and add missing ones in the .remove() handler. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com> Tested-by: Sebastian Reichel <sebastian.reichel@collabora.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c')
-rw-r--r--drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 5a06fbb7984a..0c5b405b4c9e 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -97,9 +97,6 @@ static void sharp_ls_disable(struct omap_dss_device *dssdev)
struct panel_drv_data *ddata = to_panel_data(dssdev);
struct omap_dss_device *src = dssdev->src;
- if (!omapdss_device_is_enabled(dssdev))
- return;
-
if (ddata->ini_gpio)
gpiod_set_value_cansleep(ddata->ini_gpio, 0);
@@ -233,7 +230,8 @@ static int __exit sharp_ls_remove(struct platform_device *pdev)
omapdss_device_unregister(dssdev);
- sharp_ls_disable(dssdev);
+ if (omapdss_device_is_enabled(dssdev))
+ sharp_ls_disable(dssdev);
return 0;
}