drm/omap: Remove unneeded safety checks in the HPD operations
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 30 May 2018 15:51:59 +0000 (18:51 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 3 Sep 2018 13:13:29 +0000 (16:13 +0300)
The HPD-related omap_dss_device operations are now only called when the
device supports HPD. There's no need to duplicate that check in the
omap_dss_device drivers. The .register_hpd_cb() operation can as a
result be turned into a void operation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/displays/connector-dvi.c
drivers/gpu/drm/omapdrm/displays/connector-hdmi.c
drivers/gpu/drm/omapdrm/displays/encoder-tpd12s015.c
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/omapdrm/omap_connector.c

index e9353e4..a53d596 100644 (file)
@@ -211,30 +211,23 @@ static bool dvic_detect(struct omap_dss_device *dssdev)
        return r == 0;
 }
 
-static int dvic_register_hpd_cb(struct omap_dss_device *dssdev,
+static void dvic_register_hpd_cb(struct omap_dss_device *dssdev,
                                 void (*cb)(void *cb_data,
                                            enum drm_connector_status status),
                                 void *cb_data)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
-       if (!ddata->hpd_gpio)
-               return -ENOTSUPP;
-
        mutex_lock(&ddata->hpd_lock);
        ddata->hpd_cb = cb;
        ddata->hpd_cb_data = cb_data;
        mutex_unlock(&ddata->hpd_lock);
-       return 0;
 }
 
 static void dvic_unregister_hpd_cb(struct omap_dss_device *dssdev)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
-       if (!ddata->hpd_gpio)
-               return;
-
        mutex_lock(&ddata->hpd_lock);
        ddata->hpd_cb = NULL;
        ddata->hpd_cb_data = NULL;
index 8eae973..c58bf64 100644 (file)
@@ -147,31 +147,23 @@ static bool hdmic_detect(struct omap_dss_device *dssdev)
        return connected;
 }
 
-static int hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
-                                void (*cb)(void *cb_data,
+static void hdmic_register_hpd_cb(struct omap_dss_device *dssdev,
+                                 void (*cb)(void *cb_data,
                                            enum drm_connector_status status),
-                                void *cb_data)
+                                 void *cb_data)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
-       if (!ddata->hpd_gpio)
-               return -ENOTSUPP;
-
        mutex_lock(&ddata->hpd_lock);
        ddata->hpd_cb = cb;
        ddata->hpd_cb_data = cb_data;
        mutex_unlock(&ddata->hpd_lock);
-
-       return 0;
 }
 
 static void hdmic_unregister_hpd_cb(struct omap_dss_device *dssdev)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
-       if (!ddata->hpd_gpio)
-               return;
-
        mutex_lock(&ddata->hpd_lock);
        ddata->hpd_cb = NULL;
        ddata->hpd_cb_data = NULL;
index f6d4f90..508df41 100644 (file)
@@ -140,10 +140,10 @@ static bool tpd_detect(struct omap_dss_device *dssdev)
        return connected;
 }
 
-static int tpd_register_hpd_cb(struct omap_dss_device *dssdev,
-                              void (*cb)(void *cb_data,
+static void tpd_register_hpd_cb(struct omap_dss_device *dssdev,
+                               void (*cb)(void *cb_data,
                                          enum drm_connector_status status),
-                              void *cb_data)
+                               void *cb_data)
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
@@ -151,8 +151,6 @@ static int tpd_register_hpd_cb(struct omap_dss_device *dssdev,
        ddata->hpd_cb = cb;
        ddata->hpd_cb_data = cb_data;
        mutex_unlock(&ddata->hpd_lock);
-
-       return 0;
 }
 
 static void tpd_unregister_hpd_cb(struct omap_dss_device *dssdev)
index 30ad998..b05d47b 100644 (file)
@@ -372,10 +372,10 @@ struct omap_dss_device_ops {
 
        bool (*detect)(struct omap_dss_device *dssdev);
 
-       int (*register_hpd_cb)(struct omap_dss_device *dssdev,
-                              void (*cb)(void *cb_data,
+       void (*register_hpd_cb)(struct omap_dss_device *dssdev,
+                               void (*cb)(void *cb_data,
                                          enum drm_connector_status status),
-                              void *cb_data);
+                               void *cb_data);
        void (*unregister_hpd_cb)(struct omap_dss_device *dssdev);
        void (*enable_hpd)(struct omap_dss_device *dssdev);
        void (*disable_hpd)(struct omap_dss_device *dssdev);
index 05734c9..cd33995 100644 (file)
@@ -298,19 +298,10 @@ struct drm_connector *omap_connector_init(struct drm_device *dev,
         */
        dssdev = omap_connector_find_device(connector, OMAP_DSS_DEVICE_OP_HPD);
        if (dssdev) {
-               int ret;
-
-               ret = dssdev->ops->register_hpd_cb(dssdev,
-                                                  omap_connector_hpd_cb,
-                                                  omap_connector);
-               if (ret < 0)
-                       DBG("%s: Failed to register HPD callback (%d).",
-                           dssdev->name, ret);
-               else
-                       connector->polled = DRM_CONNECTOR_POLL_HPD;
-       }
-
-       if (!connector->polled) {
+               dssdev->ops->register_hpd_cb(dssdev, omap_connector_hpd_cb,
+                                            omap_connector);
+               connector->polled = DRM_CONNECTOR_POLL_HPD;
+       } else {
                dssdev = omap_connector_find_device(connector,
                                                    OMAP_DSS_DEVICE_OP_DETECT);
                if (dssdev)