drm/omap: Merge display .get_modes() and .get_size() operations
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 12 Sep 2018 21:35:54 +0000 (00:35 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Mon, 18 Mar 2019 09:42:12 +0000 (11:42 +0200)
Now that the .get_modes() operations takes a drm_connector and fills it
with modes, it becomes easy to fill display information in the same
operation without requiring a separate .get_size() opearation.

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>
drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
drivers/gpu/drm/omapdrm/dss/omapdss.h
drivers/gpu/drm/omapdrm/omap_connector.c

index 9cd9ab4..c5f5701 100644 (file)
@@ -1117,6 +1117,9 @@ static int dsicm_get_modes(struct omap_dss_device *dssdev,
 {
        struct panel_drv_data *ddata = to_panel_data(dssdev);
 
+       connector->display_info.width_mm = ddata->width_mm;
+       connector->display_info.height_mm = ddata->height_mm;
+
        return omapdss_display_get_modes(connector, &ddata->vm);
 }
 
@@ -1142,15 +1145,6 @@ static int dsicm_check_timings(struct omap_dss_device *dssdev,
        return ret;
 }
 
-static void dsicm_get_size(struct omap_dss_device *dssdev,
-                         unsigned int *width, unsigned int *height)
-{
-       struct panel_drv_data *ddata = to_panel_data(dssdev);
-
-       *width = ddata->width_mm;
-       *height = ddata->height_mm;
-}
-
 static const struct omap_dss_device_ops dsicm_ops = {
        .connect        = dsicm_connect,
        .disconnect     = dsicm_disconnect,
@@ -1166,8 +1160,6 @@ static const struct omap_dss_driver dsicm_dss_driver = {
        .update         = dsicm_update,
        .sync           = dsicm_sync,
 
-       .get_size       = dsicm_get_size,
-
        .enable_te      = dsicm_enable_te,
        .get_te         = dsicm_get_te,
 
index 88fa61d..7637fc0 100644 (file)
@@ -457,9 +457,6 @@ struct omap_dss_driver {
        int (*memory_read)(struct omap_dss_device *dssdev,
                        void *buf, size_t size,
                        u16 x, u16 y, u16 w, u16 h);
-
-       void (*get_size)(struct omap_dss_device *dssdev,
-                        unsigned int *width, unsigned int *height);
 };
 
 struct dss_device *omapdss_get_dss(void);
index 8d9197e..c015755 100644 (file)
@@ -225,19 +225,8 @@ static int omap_connector_get_modes(struct drm_connector *connector)
                return omap_connector_get_modes_edid(connector, dssdev);
 
        /*
-        * Otherwise we have either a fixed resolution panel or an output that
-        * doesn't support modes discovery (e.g. DVI or VGA with the DDC bus
-        * unconnected, or analog TV). Start by querying the size.
-        */
-       dssdev = omap_connector->display;
-       if (dssdev->driver && dssdev->driver->get_size)
-               dssdev->driver->get_size(dssdev,
-                                        &connector->display_info.width_mm,
-                                        &connector->display_info.height_mm);
-
-       /*
-        * If the display pipeline reports modes (e.g. with a fixed resolution
-        * panel or an analog TV output), query it.
+        * Otherwise if the display pipeline reports modes (e.g. with a fixed
+        * resolution panel or an analog TV output), query it.
         */
        for (dssdev = omap_connector->display; dssdev; dssdev = dssdev->src) {
                if (dssdev->ops->get_modes)