diff mbox series

[13/29] drm/omap: Merge display .get_modes() and .get_size() operations

Message ID 20181205150022.24200-14-laurent.pinchart@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series omapdrm: Last large refactoring for drm_bridge transition | expand

Commit Message

Laurent Pinchart Dec. 5, 2018, 3 p.m. UTC
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>
---
 drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 14 +++-----------
 drivers/gpu/drm/omapdrm/dss/omapdss.h           |  3 ---
 drivers/gpu/drm/omapdrm/omap_connector.c        | 15 ++-------------
 3 files changed, 5 insertions(+), 27 deletions(-)

Comments

Sebastian Reichel Dec. 9, 2018, 10:02 p.m. UTC | #1
Hi,

On Wed, Dec 05, 2018 at 05:00:06PM +0200, Laurent Pinchart wrote:
> 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>

-- Sebastian

>  drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 14 +++-----------
>  drivers/gpu/drm/omapdrm/dss/omapdss.h           |  3 ---
>  drivers/gpu/drm/omapdrm/omap_connector.c        | 15 ++-------------
>  3 files changed, 5 insertions(+), 27 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> index 9cd9ab487a24..c5f570106a17 100644
> --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
> @@ -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,
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> index 3be8d3153d1a..561f404a58f2 100644
> --- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
> @@ -462,9 +462,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);
> diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
> index 93b31bf07d05..c21a2016d03f 100644
> --- a/drivers/gpu/drm/omapdrm/omap_connector.c
> +++ b/drivers/gpu/drm/omapdrm/omap_connector.c
> @@ -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)
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
index 9cd9ab487a24..c5f570106a17 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c
@@ -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,
 
diff --git a/drivers/gpu/drm/omapdrm/dss/omapdss.h b/drivers/gpu/drm/omapdrm/dss/omapdss.h
index 3be8d3153d1a..561f404a58f2 100644
--- a/drivers/gpu/drm/omapdrm/dss/omapdss.h
+++ b/drivers/gpu/drm/omapdrm/dss/omapdss.h
@@ -462,9 +462,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);
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c
index 93b31bf07d05..c21a2016d03f 100644
--- a/drivers/gpu/drm/omapdrm/omap_connector.c
+++ b/drivers/gpu/drm/omapdrm/omap_connector.c
@@ -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)