mirror of https://gitee.com/openkylin/linux.git
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:
parent
870e19d59f
commit
a872d5e92a
|
@ -1117,6 +1117,9 @@ static int dsicm_get_modes(struct omap_dss_device *dssdev,
|
||||||
{
|
{
|
||||||
struct panel_drv_data *ddata = to_panel_data(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);
|
return omapdss_display_get_modes(connector, &ddata->vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1142,15 +1145,6 @@ static int dsicm_check_timings(struct omap_dss_device *dssdev,
|
||||||
return ret;
|
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 = {
|
static const struct omap_dss_device_ops dsicm_ops = {
|
||||||
.connect = dsicm_connect,
|
.connect = dsicm_connect,
|
||||||
.disconnect = dsicm_disconnect,
|
.disconnect = dsicm_disconnect,
|
||||||
|
@ -1166,8 +1160,6 @@ static const struct omap_dss_driver dsicm_dss_driver = {
|
||||||
.update = dsicm_update,
|
.update = dsicm_update,
|
||||||
.sync = dsicm_sync,
|
.sync = dsicm_sync,
|
||||||
|
|
||||||
.get_size = dsicm_get_size,
|
|
||||||
|
|
||||||
.enable_te = dsicm_enable_te,
|
.enable_te = dsicm_enable_te,
|
||||||
.get_te = dsicm_get_te,
|
.get_te = dsicm_get_te,
|
||||||
|
|
||||||
|
|
|
@ -457,9 +457,6 @@ struct omap_dss_driver {
|
||||||
int (*memory_read)(struct omap_dss_device *dssdev,
|
int (*memory_read)(struct omap_dss_device *dssdev,
|
||||||
void *buf, size_t size,
|
void *buf, size_t size,
|
||||||
u16 x, u16 y, u16 w, u16 h);
|
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);
|
struct dss_device *omapdss_get_dss(void);
|
||||||
|
|
|
@ -225,19 +225,8 @@ static int omap_connector_get_modes(struct drm_connector *connector)
|
||||||
return omap_connector_get_modes_edid(connector, dssdev);
|
return omap_connector_get_modes_edid(connector, dssdev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Otherwise we have either a fixed resolution panel or an output that
|
* Otherwise if the display pipeline reports modes (e.g. with a fixed
|
||||||
* doesn't support modes discovery (e.g. DVI or VGA with the DDC bus
|
* resolution panel or an analog TV output), query it.
|
||||||
* 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.
|
|
||||||
*/
|
*/
|
||||||
for (dssdev = omap_connector->display; dssdev; dssdev = dssdev->src) {
|
for (dssdev = omap_connector->display; dssdev; dssdev = dssdev->src) {
|
||||||
if (dssdev->ops->get_modes)
|
if (dssdev->ops->get_modes)
|
||||||
|
|
Loading…
Reference in New Issue