drm/omap: Don't call .check_timings() operation recursively

The .check_timings() operation is called recursively from the display
device back to the output device. Most components just forward the
operation to the previous component in the chain, resulting in lots of
duplicated pass-through functions. To avoid that, iterate over the
components manually.

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>
This commit is contained in:
Laurent Pinchart
2018-06-06 00:55:48 +03:00
committed by Tomi Valkeinen
parent b4935e3a3c
commit 28120302c2
15 changed files with 32 additions and 139 deletions

View File

@@ -99,14 +99,6 @@ static void tpd_set_timings(struct omap_dss_device *dssdev,
src->ops->set_timings(src, vm);
}
static int tpd_check_timings(struct omap_dss_device *dssdev,
struct videomode *vm)
{
struct omap_dss_device *src = dssdev->src;
return src->ops->check_timings(src, vm);
}
static bool tpd_detect(struct omap_dss_device *dssdev)
{
struct panel_drv_data *ddata = to_panel_data(dssdev);
@@ -142,7 +134,6 @@ static const struct omap_dss_device_ops tpd_ops = {
.disconnect = tpd_disconnect,
.enable = tpd_enable,
.disable = tpd_disable,
.check_timings = tpd_check_timings,
.set_timings = tpd_set_timings,
.detect = tpd_detect,
.register_hpd_cb = tpd_register_hpd_cb,