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

@@ -477,8 +477,6 @@ static void dpi_set_timings(struct omap_dss_device *dssdev,
dpi->vm = *vm;
dss_mgr_set_timings(&dpi->output, vm);
mutex_unlock(&dpi->lock);
}

View File

@@ -259,8 +259,6 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
dss_mgr_set_timings(&hdmi->output, vm);
mutex_unlock(&hdmi->lock);
}

View File

@@ -258,8 +258,6 @@ static void hdmi_display_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(hdmi->dss->dispc, vm->pixelclock);
dss_mgr_set_timings(&hdmi->output, vm);
mutex_unlock(&hdmi->lock);
}

View File

@@ -218,8 +218,6 @@ static void sdi_set_timings(struct omap_dss_device *dssdev,
struct sdi_device *sdi = dssdev_to_sdi(dssdev);
sdi->vm = *vm;
dss_mgr_set_timings(&sdi->output, vm);
}
static int sdi_check_timings(struct omap_dss_device *dssdev,

View File

@@ -593,8 +593,6 @@ static void venc_set_timings(struct omap_dss_device *dssdev,
dispc_set_tv_pclk(venc->dss->dispc, 13500000);
dss_mgr_set_timings(&venc->output, vm);
mutex_unlock(&venc->venc_lock);
}