drm/rockchip: find connector by device node
authorMark Yao <mark.yao@rock-chips.com>
Mon, 1 Aug 2016 09:03:17 +0000 (17:03 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Wed, 3 Aug 2016 07:54:37 +0000 (15:54 +0800)
Change-Id: I3851e296669c5c67ada47b472a3f7294ca25c796
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
drivers/gpu/drm/bridge/analogix/analogix_dp_core.c
drivers/gpu/drm/bridge/dw-hdmi.c
drivers/gpu/drm/rockchip/dw-mipi-dsi.c
drivers/gpu/drm/rockchip/inno_hdmi.c
include/drm/drm_crtc.h

index 1a890fac97bce0242b2895b1772d16e3b1d870ae..01afc8a0da63b7c205a1a6220a456899417fd550 100644 (file)
@@ -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,
index f984983168cb034429d4447d033f31f76585e0a3..6af430bfc6d3fd12e2298c9bebee33e9ce5961bf 100644 (file)
@@ -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);
index aac04532bcd695b784536479c4216ade72300167..856804cd488b8d31ec5988c477e583159fba0c97 100644 (file)
@@ -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;
index c296559ba796e1753dd262c631021af99f9cc4c7..f9d1fbb0cbc3e9d115d2b721430143f6050c273a 100644 (file)
@@ -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);
index 9c37e6bd301c8ddcf92066fabb06ca4eca43dda3..0fc87d4cf31cfe7c94aa29585252a3ec995990b5 100644 (file)
@@ -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;