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:

committed by
Tomi Valkeinen

parent
d8dbe79143
commit
6ea4843095
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user