Star64_linux/drivers/gpu/drm/bridge
Heiko Stuebner 90910a6511 drm/bridge/synopsys: dsi: add ability to have glue-specific attach and detach
With the regular means of adding the dsi-component in probe it creates
a race condition with the panel probing, as the panel device only gets
created after the dsi-bus got created.

When the panel-driver is build as a module it currently fails hard as the
panel cannot be probed directly:

dw_mipi_dsi_bind()
  __dw_mipi_dsi_probe()
    creates dsi bus
    creates panel device
    triggers panel module load
    panel not probed (module not loaded or panel probe slow)
  drm_bridge_attach
    fails with -EINVAL due to empty panel_bridge

Additionally the panel probing can run concurrently with dsi bringup
making it possible that the panel can already be found but dsi-attach
hasn't finished running.

To solve that cleanly we may want to only create the component after
the panel has finished probing, by calling component_add from the
host-attach dsi callback.

As that is specific to glue drivers, add a new struct for host_ops
so that glue drivers can tell the bridge to call specific functions
after the common host-attach and before the common host-detach run.

Suggested-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181001123845.11818-4-heiko@sntech.de
2018-10-30 14:06:13 +01:00
..
adv7511 drm pull for 4.19-rc1 2018-08-15 17:39:07 -07:00
analogix drm/bridge: analogix_dp: Fix misleading indentation reported by smatch 2018-10-29 14:47:39 +01:00
synopsys drm/bridge/synopsys: dsi: add ability to have glue-specific attach and detach 2018-10-30 14:06:13 +01:00
analogix-anx78xx.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
analogix-anx78xx.h
cdns-dsi.c drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
dumb-vga-dac.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
Kconfig drm/bridge: ti-sn65dsi86: Fix 0-day build error 2018-08-16 11:26:37 -04:00
lvds-encoder.c drm/panel: Make of_drm_find_panel() return an ERR_PTR() instead of NULL 2018-07-10 17:59:05 +02:00
Makefile drm/bridge: tc358764: Add DSI to LVDS bridge driver 2018-07-27 09:09:57 +02:00
megachips-stdpxxxx-ge-b850v3-fw.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
nxp-ptn3460.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
panel.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
parade-ps8622.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
sii902x.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
sii9234.c
sil-sii8620.c drm/bridge/sii8620: Fix link mode selection 2018-07-04 16:27:51 +02:00
sil-sii8620.h
tc358764.c drm/bridge/tc358764: fix drm helper name 2018-07-30 13:37:48 -04:00
tc358767.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00
thc63lvd1024.c drm: bridge: thc63: Restrict modes based on hardware operating frequency 2018-09-25 00:40:51 +03:00
ti-sn65dsi86.c drm/bridge: ti-sn65dsi86: Add mystery delay to enable() 2018-08-27 10:57:20 -04:00
ti-tfp410.c drm: drop _mode_ from drm_mode_connector_attach_encoder 2018-07-13 18:40:27 +02:00