linux/drivers/gpu/drm/omapdrm/dss
Laurent Pinchart e0c827aca0 drm/omap: Populate DSS children in omapdss driver
The DSS DT node contains children that describe the DSS components
(DISPC and internal encoders). Each of those components is handled by a
platform driver, and thus needs to be backed by a platform device.

The corresponding platform devices are created in mach-omap2 code by a
call to of_platform_populate(). While this approach has worked so far,
it doesn't model the hardware architecture very well, as it creates
child devices before the parent is ready to handle them. This would be
akin to creating I2C slaves before the I2C master is available.

The task can be easily performed in the omapdss driver code instead,
simplifying mach-omap2 code. We however can't remove the mach-omap2 code
completely as the omap2fb driver still depends on it, but we can move it
to the omap2fb-specific section, where it can stay until the omap2fb
driver gets removed.

This has the added benefit of not allowing DSS components to probe
before the DSS itself, which led to runtime PM issues when the DSS probe
is deferred.

Fixes: 27d624527d ("drm/omap: dss: Acquire next dssdev at probe time")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181110111654.4387-2-laurent.pinchart@ideasonboard.com
2018-11-12 11:50:13 +02:00
..
base.c drm/omap: Move most omap_dss_driver operations to omap_dss_device_ops 2018-09-03 16:13:29 +03:00
core.c drm/omap: dss: Move platform_device_register from core.c to dss.c probe 2018-09-03 16:13:25 +03:00
dispc_coefs.c drm: omapdrm: Remove filename from header and fix copyright tag 2017-12-19 11:21:32 +02:00
dispc.c drm/omap: Substitute format_is_yuv() with format->is_yuv 2018-10-02 09:36:56 +03:00
dispc.h drm: omapdrm: Remove filename from header and fix copyright tag 2017-12-19 11:21:32 +02:00
display.c drm/omap: dss: Add function to retrieve display for an output 2018-09-03 16:13:27 +03:00
dpi.c drm/omap: Don't call .set_timings() operation recursively 2018-09-03 16:13:30 +03:00
dsi.c drm/omap: Store CRTC timings in .set_timings() operation 2018-09-03 16:13:30 +03:00
dss-of.c drm/omap: dss: Extend omapdss_of_find_source_for_first_ep() to sinks 2018-09-03 16:13:27 +03:00
dss.c drm/omap: Populate DSS children in omapdss driver 2018-11-12 11:50:13 +02:00
dss.h drm/omap: Call dispc timings check operation directly 2018-09-03 16:13:30 +03:00
hdmi4_cec.c drm: omapdrm: hdmi4: Allocate the omap_hdmi data structure dynamically 2018-03-01 09:18:18 +02:00
hdmi4_cec.h omapdrm: hdmi4_cec: add OMAP4 HDMI CEC support 2017-10-12 10:49:14 +03:00
hdmi4_core.c drm/omap: check return value from soc_device_match 2018-05-07 10:19:11 -04:00
hdmi4_core.h drm: omapdrm: hdmi4: Allocate the omap_hdmi data structure dynamically 2018-03-01 09:18:18 +02:00
hdmi4.c drm/omap: Don't call .set_timings() operation recursively 2018-09-03 16:13:30 +03:00
hdmi5_core.c drm/omap: hdmi: Constify video mode and related pointers 2018-09-03 16:13:30 +03:00
hdmi5_core.h
hdmi5.c drm/omap: Don't call .set_timings() operation recursively 2018-09-03 16:13:30 +03:00
hdmi_common.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hdmi_phy.c drm: omapdrm: Use unsigned int type 2018-03-01 09:09:10 +02:00
hdmi_pll.c drm: omapdrm: dss: Store the registered plls array in struct dss_device 2018-03-01 09:18:18 +02:00
hdmi_wp.c drm/omap: hdmi: Constify video mode and related pointers 2018-09-03 16:13:30 +03:00
hdmi.h drm/omap: hdmi: Constify video mode and related pointers 2018-09-03 16:13:30 +03:00
Kconfig omapdrm: hdmi4: hook up the HDMI CEC support 2017-10-12 10:49:14 +03:00
Makefile main drm pull request for v4.15 2017-11-15 20:42:10 -08:00
omapdss-boot-init.c drm: omapdrm: Remove filename from header and fix copyright tag 2017-12-19 11:21:32 +02:00
omapdss.h drm/omap: Call dispc timings check operation directly 2018-09-03 16:13:30 +03:00
output.c drm/omap: dss: Remove the dss_mgr_(dis)connect() operations 2018-09-03 16:13:28 +03:00
pll.c drm/omap: Implement workaround for DRA7 errata ID:i932 2018-06-28 13:41:05 +03:00
sdi.c drm/omap: Don't call .set_timings() operation recursively 2018-09-03 16:13:30 +03:00
venc.c drm/omap: Don't call .set_timings() operation recursively 2018-09-03 16:13:30 +03:00
video-pll.c drm/omap: Implement workaround for DRA7 errata ID:i932 2018-06-28 13:41:05 +03:00