Hi Mihail,
Thank you for the patches.
On Wed, Dec 04, 2019 at 11:48:01AM +0000, Mihail Atanassov wrote:
Hi all,
I've dropped the fun parts of this series since they need more work, but figured drm_bridge_init() as a concept is still valuable on its own (and I think I'll need it to roll out device links for registered bridges), so here goes.
v2:
- expanded commit messages and added some extra bridge-related documentation (Daniel)
- dropped v1 patches 29 and 30: 29 needs more work, and 30 depends on it
- added all remaining drm_bridge implementers, found by searching for drm_bridge_funcs which is mandatory for any bridge; new uses in patches 3, 27, and 28 (Sam)
- due to the above, I've decided to squash all analogix changes into one patch
For patches 02, 04 to 11 and 13 to 17, 19 to 24, and 27 to 28,
Reviewed-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
v1 [https://patchwork.freedesktop.org/series/70039/] cover text below:
This series adds device links support to drm_bridge. The motivation behind it is that a drm_bridge in a module could get removed under the feet of the bridge user without warning, so we need a way to remove and reprobe the client as needed to avoid peering into the void.
1: Add a drm_bridge_init() function which wraps all initialisation of the structure prior to calling drm_bridge_add().
2-26,28: Apply the drm_bridge_init() refactor to every bridge that uses drm_bridge_add().
27: Minor cleanup in rcar-du.
29: Add of_drm_find_bridge_devlink() which functions the same as of_drm_find_bridge() plus adds a device device link from the owning drm_device to the bridge device.
30: As a motivating example, convert komeda to exclusively use drm_bridge for its pipe outputs; this isn't a regression in usability any more since device links bring the same automatic remove/reprobe feature as components.
Mihail Atanassov (28): drm: Introduce drm_bridge_init() drm/bridge: adv7511: Use drm_bridge_init() drm/bridge/analogix: Use drm_bridge_init() drm/bridge: cdns: Use drm_bridge_init() drm/bridge: dumb-vga-dac: Use drm_bridge_init() drm/bridge: lvds-encoder: Use drm_bridge_init() drm/bridge: megachips-stdpxxxx-ge-b850v3-fw: Use drm_bridge_init() drm/bridge: nxp-ptn3460: Use drm_bridge_init() drm/bridge: panel: Use drm_bridge_init() drm/bridge: ps8622: Use drm_bridge_init() drm/bridge: sii902x: Use drm_bridge_init() gpu: drm: bridge: sii9234: Use drm_bridge_init() drm/bridge: sil_sii8620: Use drm_bridge_init() drm/bridge: dw-hdmi: Use drm_bridge_init() drm/bridge/synopsys: dsi: Use drm_bridge_init() drm/bridge: tc358764: Use drm_bridge_init() drm/bridge: tc358767: Use drm_bridge_init() drm/bridge: thc63: Use drm_bridge_init() drm/bridge: ti-sn65dsi86: Use drm_bridge_init() drm/bridge: ti-tfp410: Use drm_bridge_init() drm/exynos: mic: Use drm_bridge_init() drm/i2c: tda998x: Use drm_bridge_init() drm/mcde: dsi: Use drm_bridge_init() drm/mediatek: hdmi: Use drm_bridge_init() drm: rcar-du: lvds: Use drm_bridge_init() drm: rcar-du: lvds: Don't set drm_bridge private pointer drm/sti: Use drm_bridge_init() drm/msm: Use drm_bridge_init()
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 5 ++- .../drm/bridge/analogix/analogix-anx6345.c | 5 ++- .../drm/bridge/analogix/analogix-anx78xx.c | 8 ++--- .../drm/bridge/analogix/analogix_dp_core.c | 5 ++- drivers/gpu/drm/bridge/cdns-dsi.c | 4 +-- drivers/gpu/drm/bridge/dumb-vga-dac.c | 6 ++-- drivers/gpu/drm/bridge/lvds-encoder.c | 7 ++-- .../bridge/megachips-stdpxxxx-ge-b850v3-fw.c | 4 +-- drivers/gpu/drm/bridge/nxp-ptn3460.c | 4 +-- drivers/gpu/drm/bridge/panel.c | 7 ++-- drivers/gpu/drm/bridge/parade-ps8622.c | 3 +- drivers/gpu/drm/bridge/sii902x.c | 5 ++- drivers/gpu/drm/bridge/sii9234.c | 3 +- drivers/gpu/drm/bridge/sil-sii8620.c | 3 +- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 7 ++-- drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c | 7 ++-- drivers/gpu/drm/bridge/tc358764.c | 4 +-- drivers/gpu/drm/bridge/tc358767.c | 3 +- drivers/gpu/drm/bridge/thc63lvd1024.c | 7 ++-- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 5 ++- drivers/gpu/drm/bridge/ti-tfp410.c | 5 ++- drivers/gpu/drm/drm_bridge.c | 34 ++++++++++++++++++- drivers/gpu/drm/exynos/exynos_drm_mic.c | 8 +---- drivers/gpu/drm/i2c/tda998x_drv.c | 6 +--- drivers/gpu/drm/mcde/mcde_dsi.c | 3 +- drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 +-- drivers/gpu/drm/msm/dsi/dsi_manager.c | 4 +-- drivers/gpu/drm/msm/edp/edp_bridge.c | 3 +- drivers/gpu/drm/msm/hdmi/hdmi_bridge.c | 4 +-- drivers/gpu/drm/rcar-du/rcar_lvds.c | 5 ++- drivers/gpu/drm/sti/sti_dvo.c | 4 +-- drivers/gpu/drm/sti/sti_hda.c | 3 +- drivers/gpu/drm/sti/sti_hdmi.c | 3 +- include/drm/drm_bridge.h | 15 +++++++- 34 files changed, 100 insertions(+), 103 deletions(-)