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: 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>
This commit is contained in:
Laurent Pinchart 2018-09-13 00:35:54 +03:00 committed by Tomi Valkeinen
parent 870e19d59f
commit a872d5e92a
3 changed files with 5 additions and 27 deletions

View 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,

View 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);

View 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)