public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v2 00/28] drm/bridge: Consolidate initialization
@ 2019-12-04 11:48 Mihail Atanassov
  2019-12-04 11:48 ` [PATCH v2 21/28] drm/exynos: mic: Use drm_bridge_init() Mihail Atanassov
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Mihail Atanassov @ 2019-12-04 11:48 UTC (permalink / raw)
  To: dri-devel@lists.freedesktop.org
  Cc: Martyn Welch, Neil Armstrong, David Airlie, Linus Walleij,
	Peter Senna Tschudin, Russell King, Andrzej Hajda,
	Laurent Pinchart, Benjamin Gaignard, Boris Brezillon,
	Mihail Atanassov, Sam Ravnborg, Jerome Brunet,
	linux-renesas-soc@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, Joonyoung Shim, Vincent Abriou,
	Martin Donnelly, Krzysztof Kozlowski, Kukjin Kim, CK Hu,
	Icenowy Zheng, Rob Clark, Philipp Zabel, Jonas Karlman,
	linux-arm-msm@vger.kernel.org, Maarten Lankhorst, Brian Masney,
	Maxime Ripard, Inki Dae, linux-mediatek@lists.infradead.org,
	Matthias Brugger, nd, Sean Paul,
	linux-arm-kernel@lists.infradead.org, Jernej Skrabec,
	Wolfram Sang, Seung-Woo Kim, Douglas Anderson,
	linux-kernel@vger.kernel.org, Yannick Fertré, Kyungmin Park,
	Kieran Bingham, Torsten Duwe, Daniel Vetter,
	Dariusz Marcinkiewicz, freedreno@lists.freedesktop.org

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

---
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(-)

-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 21/28] drm/exynos: mic: Use drm_bridge_init()
  2019-12-04 11:48 [PATCH v2 00/28] drm/bridge: Consolidate initialization Mihail Atanassov
@ 2019-12-04 11:48 ` Mihail Atanassov
  2019-12-04 11:48 ` [PATCH v2 24/28] drm/mediatek: hdmi: " Mihail Atanassov
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Mihail Atanassov @ 2019-12-04 11:48 UTC (permalink / raw)
  To: dri-devel@lists.freedesktop.org
  Cc: Mihail Atanassov, Joonyoung Shim, David Airlie, Seung-Woo Kim,
	linux-kernel@vger.kernel.org, Krzysztof Kozlowski, Inki Dae,
	linux-samsung-soc@vger.kernel.org, Kyungmin Park, Kukjin Kim,
	Daniel Vetter, nd, linux-arm-kernel@lists.infradead.org

No functional change: no logic depends on driver_private being NULL, so
it's safe to set it earlier in exynos_mic_probe.

Acked-by: Inki Dae <inki.dae@samsung.com>
Tested-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
---
 drivers/gpu/drm/exynos/exynos_drm_mic.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c
index f41d75923557..caad348a5646 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -309,10 +309,6 @@ static const struct drm_bridge_funcs mic_bridge_funcs = {
 static int exynos_mic_bind(struct device *dev, struct device *master,
 			   void *data)
 {
-	struct exynos_mic *mic = dev_get_drvdata(dev);
-
-	mic->bridge.driver_private = mic;
-
 	return 0;
 }
 
@@ -422,9 +418,7 @@ static int exynos_mic_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, mic);
 
-	mic->bridge.funcs = &mic_bridge_funcs;
-	mic->bridge.of_node = dev->of_node;
-
+	drm_bridge_init(&mic->bridge, dev, &mic_bridge_funcs, NULL, mic);
 	drm_bridge_add(&mic->bridge);
 
 	pm_runtime_enable(dev);
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 24/28] drm/mediatek: hdmi: Use drm_bridge_init()
  2019-12-04 11:48 [PATCH v2 00/28] drm/bridge: Consolidate initialization Mihail Atanassov
  2019-12-04 11:48 ` [PATCH v2 21/28] drm/exynos: mic: Use drm_bridge_init() Mihail Atanassov
@ 2019-12-04 11:48 ` Mihail Atanassov
  2019-12-10  1:24   ` CK Hu
  2019-12-05 13:34 ` [PATCH v2 00/28] drm/bridge: Consolidate initialization Laurent Pinchart
  2019-12-09 10:39 ` Neil Armstrong
  3 siblings, 1 reply; 7+ messages in thread
From: Mihail Atanassov @ 2019-12-04 11:48 UTC (permalink / raw)
  To: dri-devel@lists.freedesktop.org
  Cc: Mihail Atanassov, Philipp Zabel, David Airlie,
	linux-kernel@vger.kernel.org, Matthias Brugger,
	linux-mediatek@lists.infradead.org, Daniel Vetter, CK Hu, nd,
	linux-arm-kernel@lists.infradead.org

No functional change.

Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
---
 drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
index f684947c5243..9761a80674d9 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
@@ -1708,8 +1708,8 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
 
 	mtk_hdmi_register_audio_driver(dev);
 
-	hdmi->bridge.funcs = &mtk_hdmi_bridge_funcs;
-	hdmi->bridge.of_node = pdev->dev.of_node;
+	drm_bridge_init(&hdmi->bridge, &pdev->dev, &mtk_hdmi_bridge_funcs,
+			NULL, NULL);
 	drm_bridge_add(&hdmi->bridge);
 
 	ret = mtk_hdmi_clk_enable_audio(hdmi);
-- 
2.23.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 00/28] drm/bridge: Consolidate initialization
  2019-12-04 11:48 [PATCH v2 00/28] drm/bridge: Consolidate initialization Mihail Atanassov
  2019-12-04 11:48 ` [PATCH v2 21/28] drm/exynos: mic: Use drm_bridge_init() Mihail Atanassov
  2019-12-04 11:48 ` [PATCH v2 24/28] drm/mediatek: hdmi: " Mihail Atanassov
@ 2019-12-05 13:34 ` Laurent Pinchart
  2019-12-09 10:39 ` Neil Armstrong
  3 siblings, 0 replies; 7+ messages in thread
From: Laurent Pinchart @ 2019-12-05 13:34 UTC (permalink / raw)
  To: Mihail Atanassov
  Cc: Martyn Welch, Neil Armstrong, David Airlie, Linus Walleij,
	Peter Senna Tschudin, dri-devel@lists.freedesktop.org,
	Russell King, Andrzej Hajda, Benjamin Gaignard, Boris Brezillon,
	Sam Ravnborg, Jerome Brunet, linux-renesas-soc@vger.kernel.org,
	linux-samsung-soc@vger.kernel.org, Joonyoung Shim, Vincent Abriou,
	Martin Donnelly, Krzysztof Kozlowski, Kukjin Kim, CK Hu,
	Icenowy Zheng, Rob Clark, Philipp Zabel, Jonas Karlman,
	linux-arm-msm@vger.kernel.org, Maarten Lankhorst, Brian Masney,
	Maxime Ripard, Inki Dae, linux-mediatek@lists.infradead.org,
	Matthias Brugger, nd, Sean Paul,
	linux-arm-kernel@lists.infradead.org, Jernej Skrabec,
	Wolfram Sang, Seung-Woo Kim, Douglas Anderson,
	linux-kernel@vger.kernel.org, Yannick Fertré, Kyungmin Park,
	Kieran Bingham, Torsten Duwe, Daniel Vetter,
	Dariusz Marcinkiewicz, freedreno@lists.freedesktop.org

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(-)

-- 
Regards,

Laurent Pinchart

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 00/28] drm/bridge: Consolidate initialization
  2019-12-04 11:48 [PATCH v2 00/28] drm/bridge: Consolidate initialization Mihail Atanassov
                   ` (2 preceding siblings ...)
  2019-12-05 13:34 ` [PATCH v2 00/28] drm/bridge: Consolidate initialization Laurent Pinchart
@ 2019-12-09 10:39 ` Neil Armstrong
  2019-12-09 11:08   ` Mihail Atanassov
  3 siblings, 1 reply; 7+ messages in thread
From: Neil Armstrong @ 2019-12-09 10:39 UTC (permalink / raw)
  To: Mihail Atanassov, dri-devel@lists.freedesktop.org
  Cc: Martyn Welch, David Airlie, Peter Senna Tschudin,
	linux-kernel@vger.kernel.org, Wolfram Sang, Laurent Pinchart,
	Sam Ravnborg, Jerome Brunet, Yannick Fertré,
	linux-samsung-soc@vger.kernel.org, Sean Paul, Russell King,
	Krzysztof Kozlowski, Kukjin Kim, Icenowy Zheng, Jonas Karlman,
	linux-arm-msm@vger.kernel.org, linux-mediatek@lists.infradead.org,
	Matthias Brugger, nd, Vincent Abriou,
	linux-arm-kernel@lists.infradead.org, Jernej Skrabec,
	Dariusz Marcinkiewicz, Martin Donnelly, Kieran Bingham,
	Seung-Woo Kim, Douglas Anderson,
	linux-renesas-soc@vger.kernel.org, Kyungmin Park, Boris Brezillon,
	Torsten Duwe, Brian Masney, freedreno@lists.freedesktop.org

Hi Mihail,

On 04/12/2019 12:48, 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
> 
> ---
> 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(-)
> 

Can you check it doesn't collides with Boris 1-7 of "drm: Add support for bus-format negotiation" patches he just pushed on drm-misc-next ?

Neil

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 00/28] drm/bridge: Consolidate initialization
  2019-12-09 10:39 ` Neil Armstrong
@ 2019-12-09 11:08   ` Mihail Atanassov
  0 siblings, 0 replies; 7+ messages in thread
From: Mihail Atanassov @ 2019-12-09 11:08 UTC (permalink / raw)
  To: Neil Armstrong, dri-devel@lists.freedesktop.org
  Cc: Martyn Welch, David Airlie, Peter Senna Tschudin,
	linux-kernel@vger.kernel.org, Wolfram Sang, Laurent Pinchart,
	Sam Ravnborg, Jerome Brunet, Yannick Fertré,
	linux-samsung-soc@vger.kernel.org, Sean Paul, Russell King,
	Krzysztof Kozlowski, Kukjin Kim, Icenowy Zheng, Jonas Karlman,
	linux-arm-msm@vger.kernel.org, linux-mediatek@lists.infradead.org,
	Matthias Brugger, nd, Vincent Abriou,
	linux-arm-kernel@lists.infradead.org, Jernej Skrabec,
	Dariusz Marcinkiewicz, Martin Donnelly, Kieran Bingham,
	Seung-Woo Kim, Douglas Anderson,
	linux-renesas-soc@vger.kernel.org, Kyungmin Park, Boris Brezillon,
	Torsten Duwe, Brian Masney, freedreno@lists.freedesktop.org

On Monday, 9 December 2019 10:39:07 GMT Neil Armstrong wrote:
> Hi Mihail,

Hi Neil,

> 
> On 04/12/2019 12:48, 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
> > 
> > ---
> > 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(-)
> > 
> 
> Can you check it doesn't collides with Boris 1-7 of "drm: Add support for bus-format negotiation" patches he just pushed on drm-misc-next ?

Thanks for the heads-up. There's no technical conflict but the build fails.
I'll fix it for v3 after I get the de-midlayering of drm_bridge done
(see https://patchwork.freedesktop.org/patch/343643/?series=70432&rev=1 for
context) and the s/bridge->dev/bridge->drm/ patch merged
(https://patchwork.freedesktop.org/patch/343824/).

> 
> Neil
> 

-- 
Mihail




_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 24/28] drm/mediatek: hdmi: Use drm_bridge_init()
  2019-12-04 11:48 ` [PATCH v2 24/28] drm/mediatek: hdmi: " Mihail Atanassov
@ 2019-12-10  1:24   ` CK Hu
  0 siblings, 0 replies; 7+ messages in thread
From: CK Hu @ 2019-12-10  1:24 UTC (permalink / raw)
  To: Mihail Atanassov
  Cc: Philipp Zabel, David Airlie, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org, Daniel Vetter,
	Matthias Brugger, nd, linux-arm-kernel@lists.infradead.org

Hi, Mihail:

On Wed, 2019-12-04 at 11:48 +0000, Mihail Atanassov wrote:
> No functional change.
> 

Acked-by: CK Hu <ck.hu@mediatek.com>

> Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_hdmi.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi.c b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> index f684947c5243..9761a80674d9 100644
> --- a/drivers/gpu/drm/mediatek/mtk_hdmi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_hdmi.c
> @@ -1708,8 +1708,8 @@ static int mtk_drm_hdmi_probe(struct platform_device *pdev)
>  
>  	mtk_hdmi_register_audio_driver(dev);
>  
> -	hdmi->bridge.funcs = &mtk_hdmi_bridge_funcs;
> -	hdmi->bridge.of_node = pdev->dev.of_node;
> +	drm_bridge_init(&hdmi->bridge, &pdev->dev, &mtk_hdmi_bridge_funcs,
> +			NULL, NULL);
>  	drm_bridge_add(&hdmi->bridge);
>  
>  	ret = mtk_hdmi_clk_enable_audio(hdmi);

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-12-10  1:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-04 11:48 [PATCH v2 00/28] drm/bridge: Consolidate initialization Mihail Atanassov
2019-12-04 11:48 ` [PATCH v2 21/28] drm/exynos: mic: Use drm_bridge_init() Mihail Atanassov
2019-12-04 11:48 ` [PATCH v2 24/28] drm/mediatek: hdmi: " Mihail Atanassov
2019-12-10  1:24   ` CK Hu
2019-12-05 13:34 ` [PATCH v2 00/28] drm/bridge: Consolidate initialization Laurent Pinchart
2019-12-09 10:39 ` Neil Armstrong
2019-12-09 11:08   ` Mihail Atanassov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox