diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2018-06-04 18:57:09 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2018-09-03 09:13:30 -0400 |
commit | 7c27fa57ef31debf62c5529725d4fa096b336a99 (patch) | |
tree | 7c21c68f5d509b16249838efbf33d00e18844169 /drivers/gpu/drm/omapdrm/omap_connector.c | |
parent | 3fbda31e814868d8477ddf52d74b7b8f596578e8 (diff) |
drm/omap: Call dispc timings check operation directly
Instead of call the dispc timings check function dispc_mgr_timings_ok()
from the internal encoders .check_timings() operation, expose it through
the dispc ops (after renaming it to check_timings) and call it directly
from omapdrm. This allows removal of now empty omap_dss_device
.check_timings() operations.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/omap_connector.c')
-rw-r--r-- | drivers/gpu/drm/omapdrm/omap_connector.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/omapdrm/omap_connector.c b/drivers/gpu/drm/omapdrm/omap_connector.c index b8317b697083..98f5ca29444a 100644 --- a/drivers/gpu/drm/omapdrm/omap_connector.c +++ b/drivers/gpu/drm/omapdrm/omap_connector.c | |||
@@ -268,6 +268,8 @@ static int omap_connector_mode_valid(struct drm_connector *connector, | |||
268 | struct drm_display_mode *mode) | 268 | struct drm_display_mode *mode) |
269 | { | 269 | { |
270 | struct omap_connector *omap_connector = to_omap_connector(connector); | 270 | struct omap_connector *omap_connector = to_omap_connector(connector); |
271 | enum omap_channel channel = omap_connector->output->dispc_channel; | ||
272 | struct omap_drm_private *priv = connector->dev->dev_private; | ||
271 | struct omap_dss_device *dssdev; | 273 | struct omap_dss_device *dssdev; |
272 | struct videomode vm = {0}; | 274 | struct videomode vm = {0}; |
273 | struct drm_device *dev = connector->dev; | 275 | struct drm_device *dev = connector->dev; |
@@ -277,6 +279,10 @@ static int omap_connector_mode_valid(struct drm_connector *connector, | |||
277 | drm_display_mode_to_videomode(mode, &vm); | 279 | drm_display_mode_to_videomode(mode, &vm); |
278 | mode->vrefresh = drm_mode_vrefresh(mode); | 280 | mode->vrefresh = drm_mode_vrefresh(mode); |
279 | 281 | ||
282 | r = priv->dispc_ops->mgr_check_timings(priv->dispc, channel, &vm); | ||
283 | if (r) | ||
284 | goto done; | ||
285 | |||
280 | for (dssdev = omap_connector->output; dssdev; dssdev = dssdev->next) { | 286 | for (dssdev = omap_connector->output; dssdev; dssdev = dssdev->next) { |
281 | if (!dssdev->ops->check_timings) | 287 | if (!dssdev->ops->check_timings) |
282 | continue; | 288 | continue; |