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

Instead of calling the .set_timings() operation recursively from the
display device backwards, iterate over the devices manually in the DRM
encoder code. This moves the complexity to a single central location and
simplifies the logic in omap_dss_device drivers.

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-07 19:55:04 +03:00
committed by Tomi Valkeinen
parent d8dbe79143
commit 6ea4843095
19 changed files with 8 additions and 144 deletions

View File

@@ -85,22 +85,11 @@ static void opa362_disable(struct omap_dss_device *dssdev)
dssdev->state = OMAP_DSS_DISPLAY_DISABLED;
}
static void opa362_set_timings(struct omap_dss_device *dssdev,
const struct videomode *vm)
{
struct omap_dss_device *src = dssdev->src;
dev_dbg(dssdev->dev, "set_timings\n");
src->ops->set_timings(src, vm);
}
static const struct omap_dss_device_ops opa362_ops = {
.connect = opa362_connect,
.disconnect = opa362_disconnect,
.enable = opa362_enable,
.disable = opa362_disable,
.set_timings = opa362_set_timings,
};
static int opa362_probe(struct platform_device *pdev)