From: Mark Yao <mark.yao@rock-chips.com>
Date: Mon, 1 Aug 2016 09:03:17 +0000 (+0800)
Subject: drm/rockchip: find connector by device node
X-Git-Tag: firefly_0821_release~2006
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=ec3d780660a11177f9a969fc4891edcbfeccdaf3;p=firefly-linux-kernel-4.4.55.git

drm/rockchip: find connector by device node

Change-Id: I3851e296669c5c67ada47b472a3f7294ca25c796
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
---

diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
index 1a890fac97bc..01afc8a0da63 100644
--- a/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
+++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
@@ -997,6 +997,7 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge)
 	}
 
 	connector->polled = DRM_CONNECTOR_POLL_HPD;
+	connector->port = dp->dev->of_node;
 
 	ret = drm_connector_init(dp->drm_dev, connector,
 				 &analogix_dp_connector_funcs,
diff --git a/drivers/gpu/drm/bridge/dw-hdmi.c b/drivers/gpu/drm/bridge/dw-hdmi.c
index f984983168cb..6af430bfc6d3 100644
--- a/drivers/gpu/drm/bridge/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/dw-hdmi.c
@@ -1759,6 +1759,7 @@ static int dw_hdmi_register(struct drm_device *drm, struct dw_hdmi *hdmi)
 
 	encoder->bridge = bridge;
 	hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD;
+	hdmi->connector.port = hdmi->dev->of_node;
 
 	drm_connector_helper_add(&hdmi->connector,
 				 &dw_hdmi_connector_helper_funcs);
diff --git a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
index aac04532bcd6..856804cd488b 100644
--- a/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
+++ b/drivers/gpu/drm/rockchip/dw-mipi-dsi.c
@@ -1089,6 +1089,7 @@ static int dw_mipi_dsi_register(struct drm_device *drm,
 			   &dw_mipi_dsi_atomic_connector_funcs,
 			   DRM_MODE_CONNECTOR_DSI);
 
+	dsi->connector.port = dev->of_node;
 	drm_mode_connector_attach_encoder(connector, encoder);
 
 	return 0;
diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
index c296559ba796..f9d1fbb0cbc3 100644
--- a/drivers/gpu/drm/rockchip/inno_hdmi.c
+++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
@@ -869,6 +869,7 @@ static int inno_hdmi_register(struct drm_device *drm, struct inno_hdmi *hdmi)
 			 DRM_MODE_ENCODER_TMDS, NULL);
 
 	hdmi->connector.polled = DRM_CONNECTOR_POLL_HPD;
+	hdmi->connector.port = dev->of_node;
 
 	drm_connector_helper_add(&hdmi->connector,
 				 &inno_hdmi_connector_helper_funcs);
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 9c37e6bd301c..0fc87d4cf31c 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -610,6 +610,7 @@ struct drm_encoder {
 /**
  * struct drm_connector - central DRM connector control structure
  * @dev: parent DRM device
+ * @port: OF node used by find connector by node.
  * @kdev: kernel device for sysfs attributes
  * @attr: sysfs attributes
  * @head: list management
@@ -664,6 +665,7 @@ struct drm_encoder {
  */
 struct drm_connector {
 	struct drm_device *dev;
+	struct device_node *port;
 	struct device *kdev;
 	struct device_attribute *attr;
 	struct list_head head;