Merge tag 'imx-drm-next-2015-03-31' of git://git.pengutronix.de/git/pza/linux into...
[platform/kernel/linux-exynos.git] / drivers / gpu / drm / imx / imx-drm-core.c
index c6f2c47..74f505b 100644 (file)
@@ -431,15 +431,6 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
 }
 EXPORT_SYMBOL_GPL(imx_drm_encoder_parse_of);
 
-static struct device_node *imx_drm_of_get_next_endpoint(
-               const struct device_node *parent, struct device_node *prev)
-{
-       struct device_node *node = of_graph_get_next_endpoint(parent, prev);
-
-       of_node_put(prev);
-       return node;
-}
-
 /*
  * @node: device tree node containing encoder input ports
  * @encoder: drm_encoder
@@ -448,7 +439,7 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
                               struct drm_encoder *encoder)
 {
        struct imx_drm_crtc *imx_crtc = imx_drm_find_crtc(encoder->crtc);
-       struct device_node *ep = NULL;
+       struct device_node *ep;
        struct of_endpoint endpoint;
        struct device_node *port;
        int ret;
@@ -456,18 +447,15 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
        if (!node || !imx_crtc)
                return -EINVAL;
 
-       do {
-               ep = imx_drm_of_get_next_endpoint(node, ep);
-               if (!ep)
-                       break;
-
+       for_each_endpoint_of_node(node, ep) {
                port = of_graph_get_remote_port(ep);
                of_node_put(port);
                if (port == imx_crtc->crtc->port) {
                        ret = of_graph_parse_endpoint(ep, &endpoint);
+                       of_node_put(ep);
                        return ret ? ret : endpoint.port;
                }
-       } while (ep);
+       }
 
        return -EINVAL;
 }