Re: [PATCH v3 3/3] drm/rockchip: remove rockchip_drm_encoder_get_mux_id

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

 



Hi Philipp & Heiko,

在 2015/8/28 9:17, Yakir Yang 写道:
Hi Philipp,

在 2015/8/27 19:26, Heiko Stuebner 写道:
Hi Philipp,

Am Donnerstag, 27. August 2015, 12:56:07 schrieb Philipp Zabel:
It is replaced by drm_of_encoder_active_endpoint_id.

Suggested-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Reviewed-by: Daniel Kurtz <djkurtz@xxxxxxxxxxxx>
Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
the person working the most on the rockchip dw_hdmi currently is probably
Yakir Yang (included now).

But even to me with my general Rockchip work area outside the drm this looks good, as there isn't any functional change present in the moved function, so

Reviewed-by: Heiko Stuebner <heiko@xxxxxxxxx>

I cherry-pick 1/3 and 3/3 to my chromeos-3.14 tree, both HDMI and eDP works perfectly, so

Test-by: Yakir Yang <ykk@xxxxxxxxxxxxxx>


Actually, I do feel some strange limit with this change.

If we take the endpoint id as the vop id, then we must ensure the
remote point order in dtsi file.
                                hdmi_in_vopb: endpoint@0 {
                                        reg = <0>;
                                        remote-endpoint = <&vopb_out_hdmi>;
                                };
                                hdmi_in_vopl: endpoint@1 {
                                        reg = <1>;
                                        remote-endpoint = <&vopl_out_hdmi>;
                                };

This is strange limite, don't you think?

- Yakir

Thanks,
- Yakir


Heiko

---
  drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c |  2 +-
  drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 30
----------------------------- drivers/gpu/drm/rockchip/rockchip_drm_drv.h |
  2 --
  3 files changed, 1 insertion(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c index 80d6fc8..042eb95 100644
--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -201,7 +201,7 @@ static void dw_hdmi_rockchip_encoder_commit(struct
drm_encoder *encoder) u32 val;
      int mux;

- mux = rockchip_drm_encoder_get_mux_id(hdmi->dev->of_node, encoder); + mux = drm_of_encoder_active_endpoint_id(hdmi->dev->of_node, encoder);
      if (mux)
          val = HDMI_SEL_VOP_LIT | (HDMI_SEL_VOP_LIT << 16);
      else
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 9a0c291..12094d0 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -379,36 +379,6 @@ static const struct dev_pm_ops rockchip_drm_pm_ops = {
                  rockchip_drm_sys_resume)
  };

-/*
- * @node: device tree node containing encoder input ports
- * @encoder: drm_encoder
- */
-int rockchip_drm_encoder_get_mux_id(struct device_node *node,
-                    struct drm_encoder *encoder)
-{
-    struct device_node *ep;
-    struct drm_crtc *crtc = encoder->crtc;
-    struct of_endpoint endpoint;
-    struct device_node *port;
-    int ret;
-
-    if (!node || !crtc)
-        return -EINVAL;
-
-    for_each_endpoint_of_node(node, ep) {
-        port = of_graph_get_remote_port(ep);
-        of_node_put(port);
-        if (port == crtc->port) {
-            ret = of_graph_parse_endpoint(ep, &endpoint);
-            of_node_put(ep);
-            return ret ?: endpoint.id;
-        }
-    }
-
-    return -EINVAL;
-}
-EXPORT_SYMBOL_GPL(rockchip_drm_encoder_get_mux_id);
-
  static int compare_of(struct device *dev, void *data)
  {
      struct device_node *np = data;
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h index dc4e5f0..20d6ac1 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h
@@ -56,8 +56,6 @@ int rockchip_register_crtc_funcs(struct drm_device *dev,
                   const struct rockchip_crtc_funcs *crtc_funcs,
                   int pipe);
void rockchip_unregister_crtc_funcs(struct drm_device *dev, int pipe);
-int rockchip_drm_encoder_get_mux_id(struct device_node *node,
-                    struct drm_encoder *encoder);
  int rockchip_drm_crtc_mode_config(struct drm_crtc *crtc, int
connector_type, int out_mode);
  int rockchip_drm_dma_attach_device(struct drm_device *drm_dev,






_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel




[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