Re: [PATCH] drm/bridge: adv7511: make it honour next bridge in DT

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/03/2024 16:33, Dmitry Baryshkov wrote:
DT bindings for adv7511 and adv7533 bridges specify HDMI output to be
present at the port@1. This allows board DT to add e.g. HDMI connector
nodes or any other next chained bridge. Make adv7511 driver discover
that bridge and attach it to the chain.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
---
  drivers/gpu/drm/bridge/adv7511/adv7511.h     |  1 +
  drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 10 ++++++++++
  2 files changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511.h b/drivers/gpu/drm/bridge/adv7511/adv7511.h
index 39c9ece373b0..ea271f62b214 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511.h
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511.h
@@ -356,6 +356,7 @@ struct adv7511 {
  	enum drm_connector_status status;
  	bool powered;
+ struct drm_bridge *next_bridge;
  	struct drm_display_mode curr_mode;
unsigned int f_tmds;
diff --git a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
index b5518ff97165..4eea9e8fb603 100644
--- a/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
+++ b/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
@@ -17,6 +17,7 @@
  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_edid.h>
+#include <drm/drm_of.h>
  #include <drm/drm_print.h>
  #include <drm/drm_probe_helper.h>
@@ -946,6 +947,10 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge,
  	struct adv7511 *adv = bridge_to_adv7511(bridge);
  	int ret = 0;
+ ret = drm_bridge_attach(bridge->encoder, adv->next_bridge, bridge, flags);
+	if (ret)
+		return ret;
+
  	if (!(flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)) {
  		ret = adv7511_connector_init(adv);
  		if (ret < 0)
@@ -1216,6 +1221,11 @@ static int adv7511_probe(struct i2c_client *i2c)
memset(&link_config, 0, sizeof(link_config)); + ret = drm_of_find_panel_or_bridge(dev->of_node, 1, -1, NULL,
+					  &adv7511->next_bridge);
+	if (ret)
+		return ret;
+
  	if (adv7511->info->link_config)
  		ret = adv7511_parse_dt(dev->of_node, &link_config);
  	else

---
base-commit: 1843e16d2df9d98427ef8045589571749d627cf7
change-id: 20240309-adv7511-next-bridge-10d8bbe0544e

Best regards,

Reviewed-by: Neil Armstrong <neil.armstrong@xxxxxxxxxx>

Looks fine, I check most of the DT using this bridge and the port@1 seems correctly defined.

LGTM.

Neil



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux