linux/drivers/gpu/drm/sti
Ajay Kumar 3d3f8b1f8b drm/bridge: make bridge registration independent of drm flow
Currently, third party bridge drivers(ptn3460) are dependent
on the corresponding encoder driver init, since bridge driver
needs a drm_device pointer to finish drm initializations.
The encoder driver passes the drm_device pointer to the
bridge driver. Because of this dependency, third party drivers
like ptn3460 doesn't adhere to the driver model.

In this patch, we reframe the bridge registration framework
so that bridge initialization is split into 2 steps, and
bridge registration happens independent of drm flow:
--Step 1: gather all the bridge settings independent of drm and
	  add the bridge onto a global list of bridges.
--Step 2: when the encoder driver is probed, call drm_bridge_attach
	  for the corresponding bridge so that the bridge receives
	  drm_device pointer and continues with connector and other
	  drm initializations.

The old set of bridge helpers are removed, and a set of new helpers
are added to accomplish the 2 step initialization.

The bridge devices register themselves onto global list of bridges
when they get probed by calling "drm_bridge_add".

The parent encoder driver waits till the bridge is available
in the lookup table(by calling "of_drm_find_bridge") and then
continues with its initialization.

The encoder driver should also call "drm_bridge_attach" to pass
on the drm_device to the bridge object.

drm_bridge_attach inturn calls "bridge->funcs->attach" so that
bridge can continue with drm related initializations.

Signed-off-by: Ajay Kumar <ajaykumar.rs@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Tested-by: Rahul Sharma <rahul.sharma@samsung.com>
Tested-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Tested-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Tested-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2015-01-28 08:45:40 +01:00
..
Kconfig drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
Makefile drm: sti: add DVO output connector 2014-12-30 15:08:16 +01:00
NOTES
sti_awg_utils.c drm: sti: add DVO output connector 2014-12-30 15:08:16 +01:00
sti_awg_utils.h drm: sti: add DVO output connector 2014-12-30 15:08:16 +01:00
sti_compositor.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
sti_compositor.h drm: sti: enable auxiliary CRTC 2014-12-11 14:00:04 +01:00
sti_cursor.c drm: sti: add cursor plane 2014-12-11 14:00:09 +01:00
sti_cursor.h drm: sti: add cursor plane 2014-12-11 14:00:09 +01:00
sti_drm_crtc.c Merge tag 'topic/core-stuff-2014-12-19' of git://anongit.freedesktop.org/drm-intel into drm-next 2015-01-09 09:13:41 +10:00
sti_drm_crtc.h drm: sti: Add DRM driver itself 2014-07-31 09:39:11 +02:00
sti_drm_drv.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
sti_drm_drv.h drm: sti: Add DRM driver itself 2014-07-31 09:39:11 +02:00
sti_drm_plane.c drm: sti: fix module compilation issue 2014-12-15 17:07:57 +10:00
sti_drm_plane.h drm: sti: Add DRM driver itself 2014-07-31 09:39:11 +02:00
sti_dvo.c drm: sti: add DVO output connector 2014-12-30 15:08:16 +01:00
sti_gdp.c drm: sti: enable auxiliary CRTC 2014-12-11 14:00:04 +01:00
sti_gdp.h drm: sti: add GDP layer 2014-07-30 19:26:47 +02:00
sti_hda.c drm/bridge: make bridge registration independent of drm flow 2015-01-28 08:45:40 +01:00
sti_hdmi_tx3g0c55phy.c drm: sti: add HDMI driver 2014-07-30 19:24:55 +02:00
sti_hdmi_tx3g0c55phy.h drm: sti: add HDMI driver 2014-07-30 19:24:55 +02:00
sti_hdmi_tx3g4c28phy.c drm: sti: add HDMI driver 2014-07-30 19:24:55 +02:00
sti_hdmi_tx3g4c28phy.h drm: sti: add HDMI driver 2014-07-30 19:24:55 +02:00
sti_hdmi.c drm/bridge: make bridge registration independent of drm flow 2015-01-28 08:45:40 +01:00
sti_hdmi.h drm: sti: remove gpio for HDMI hot plug detection 2014-12-11 13:58:12 +01:00
sti_hqvdp_lut.h drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
sti_hqvdp.c drm: sti: fix module compilation issue 2014-12-15 17:07:57 +10:00
sti_hqvdp.h drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
sti_layer.c drm: sti: fix module compilation issue 2014-12-15 17:07:57 +10:00
sti_layer.h drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
sti_mixer.c drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
sti_mixer.h drm: sti: enable auxiliary CRTC 2014-12-11 14:00:04 +01:00
sti_tvout.c drm: sti: add DVO output connector 2014-12-30 15:08:16 +01:00
sti_vid.c drm: sti: add VID layer 2014-07-30 19:26:51 +02:00
sti_vid.h drm: sti: add VID layer 2014-07-30 19:26:51 +02:00
sti_vtac.c drm: use c99 initializers in structures 2014-09-12 16:49:34 +02:00
sti_vtg.c drm: sti: fix delay in VTG programming 2014-12-11 13:59:58 +01:00
sti_vtg.h