Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a872d5e9 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen
Browse files

drm/omap: Merge display .get_modes() and .get_size() operations



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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Tested-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 870e19d5
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -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,

+0 −3
Original line number Diff line number Diff line
@@ -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);
+2 −13
Original line number Diff line number Diff line
@@ -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)