[v4,8/9] fbdev: omapfb: use new of_graph functions
Commit Message
Now we can use new port related functions for port parsing. Use it.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 3 +-
drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 66 -------------------
drivers/video/fbdev/omap2/omapfb/dss/dss.c | 9 +--
drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 3 +-
include/video/omapfb_dss.h | 8 ---
5 files changed, 9 insertions(+), 80 deletions(-)
Comments
On Wed, Aug 28, 2024 at 05:12:22AM +0000, Kuninori Morimoto wrote:
> Now we can use new port related functions for port parsing. Use it.
>
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> ---
> drivers/video/fbdev/omap2/omapfb/dss/dpi.c | 3 +-
> drivers/video/fbdev/omap2/omapfb/dss/dss-of.c | 66 -------------------
> drivers/video/fbdev/omap2/omapfb/dss/dss.c | 9 +--
> drivers/video/fbdev/omap2/omapfb/dss/sdi.c | 3 +-
> include/video/omapfb_dss.h | 8 ---
> 5 files changed, 9 insertions(+), 80 deletions(-)
>
> diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dpi.c b/drivers/video/fbdev/omap2/omapfb/dss/dpi.c
> index 7c1b7d89389aa..395b1139a5ae7 100644
> --- a/drivers/video/fbdev/omap2/omapfb/dss/dpi.c
> +++ b/drivers/video/fbdev/omap2/omapfb/dss/dpi.c
> @@ -20,6 +20,7 @@
> #include <linux/regulator/consumer.h>
> #include <linux/string.h>
> #include <linux/of.h>
> +#include <linux/of_graph.h>
> #include <linux/clk.h>
> #include <linux/component.h>
>
> @@ -845,7 +846,7 @@ int dpi_init_port(struct platform_device *pdev, struct device_node *port)
> if (!dpi)
> return -ENOMEM;
>
> - ep = omapdss_of_get_next_endpoint(port, NULL);
> + ep = of_graph_get_next_port_endpoint(port, NULL);
> if (!ep)
> return 0;
>
> diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss-of.c b/drivers/video/fbdev/omap2/omapfb/dss/dss-of.c
> index 4040e247e026e..efb7d2e4ce85d 100644
> --- a/drivers/video/fbdev/omap2/omapfb/dss/dss-of.c
> +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss-of.c
> @@ -15,72 +15,6 @@
>
> #include "dss.h"
>
> -struct device_node *
> -omapdss_of_get_next_port(const struct device_node *parent,
> - struct device_node *prev)
> -{
> - struct device_node *port = NULL;
> -
> - if (!parent)
> - return NULL;
> -
> - if (!prev) {
> - struct device_node *ports;
> - /*
> - * It's the first call, we have to find a port subnode
> - * within this node or within an optional 'ports' node.
> - */
> - ports = of_get_child_by_name(parent, "ports");
> - if (ports)
> - parent = ports;
> -
> - port = of_get_child_by_name(parent, "port");
> -
> - /* release the 'ports' node */
> - of_node_put(ports);
> - } else {
> - struct device_node *ports;
> -
> - ports = of_get_parent(prev);
> - if (!ports)
> - return NULL;
> -
> - do {
> - port = of_get_next_child(ports, prev);
> - if (!port) {
> - of_node_put(ports);
> - return NULL;
> - }
> - prev = port;
> - } while (!of_node_name_eq(port, "port"));
> -
> - of_node_put(ports);
> - }
> -
> - return port;
> -}
> -EXPORT_SYMBOL_GPL(omapdss_of_get_next_port);
> -
> -struct device_node *
> -omapdss_of_get_next_endpoint(const struct device_node *parent,
> - struct device_node *prev)
> -{
> - struct device_node *ep = NULL;
> -
> - if (!parent)
> - return NULL;
> -
> - do {
> - ep = of_get_next_child(parent, prev);
> - if (!ep)
> - return NULL;
> - prev = ep;
> - } while (!of_node_name_eq(ep, "endpoint"));
> -
> - return ep;
> -}
> -EXPORT_SYMBOL_GPL(omapdss_of_get_next_endpoint);
> -
> struct device_node *dss_of_port_get_parent_device(struct device_node *port)
> {
> struct device_node *np;
> diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
> index d814e4baa4b33..5cab317011eeb 100644
> --- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c
> +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c
> @@ -26,6 +26,7 @@
> #include <linux/mfd/syscon.h>
> #include <linux/regmap.h>
> #include <linux/of.h>
> +#include <linux/of_graph.h>
> #include <linux/regulator/consumer.h>
> #include <linux/suspend.h>
> #include <linux/component.h>
> @@ -922,7 +923,7 @@ static int dss_init_ports(struct platform_device *pdev)
> if (parent == NULL)
> return 0;
of_graph_get_next_port() handles parent==NULL, so you can drop this
check. And the other cases.
Rob
Hi Rob
Thank you for your review
> > @@ -922,7 +923,7 @@ static int dss_init_ports(struct platform_device *pdev)
> > if (parent == NULL)
> > return 0;
>
> of_graph_get_next_port() handles parent==NULL, so you can drop this
> check. And the other cases.
Yes, indeed.
will update in v5
Thank you for your help !!
Best regards
---
Kuninori Morimoto
@@ -20,6 +20,7 @@
#include <linux/regulator/consumer.h>
#include <linux/string.h>
#include <linux/of.h>
+#include <linux/of_graph.h>
#include <linux/clk.h>
#include <linux/component.h>
@@ -845,7 +846,7 @@ int dpi_init_port(struct platform_device *pdev, struct device_node *port)
if (!dpi)
return -ENOMEM;
- ep = omapdss_of_get_next_endpoint(port, NULL);
+ ep = of_graph_get_next_port_endpoint(port, NULL);
if (!ep)
return 0;
@@ -15,72 +15,6 @@
#include "dss.h"
-struct device_node *
-omapdss_of_get_next_port(const struct device_node *parent,
- struct device_node *prev)
-{
- struct device_node *port = NULL;
-
- if (!parent)
- return NULL;
-
- if (!prev) {
- struct device_node *ports;
- /*
- * It's the first call, we have to find a port subnode
- * within this node or within an optional 'ports' node.
- */
- ports = of_get_child_by_name(parent, "ports");
- if (ports)
- parent = ports;
-
- port = of_get_child_by_name(parent, "port");
-
- /* release the 'ports' node */
- of_node_put(ports);
- } else {
- struct device_node *ports;
-
- ports = of_get_parent(prev);
- if (!ports)
- return NULL;
-
- do {
- port = of_get_next_child(ports, prev);
- if (!port) {
- of_node_put(ports);
- return NULL;
- }
- prev = port;
- } while (!of_node_name_eq(port, "port"));
-
- of_node_put(ports);
- }
-
- return port;
-}
-EXPORT_SYMBOL_GPL(omapdss_of_get_next_port);
-
-struct device_node *
-omapdss_of_get_next_endpoint(const struct device_node *parent,
- struct device_node *prev)
-{
- struct device_node *ep = NULL;
-
- if (!parent)
- return NULL;
-
- do {
- ep = of_get_next_child(parent, prev);
- if (!ep)
- return NULL;
- prev = ep;
- } while (!of_node_name_eq(ep, "endpoint"));
-
- return ep;
-}
-EXPORT_SYMBOL_GPL(omapdss_of_get_next_endpoint);
-
struct device_node *dss_of_port_get_parent_device(struct device_node *port)
{
struct device_node *np;
@@ -26,6 +26,7 @@
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>
#include <linux/of.h>
+#include <linux/of_graph.h>
#include <linux/regulator/consumer.h>
#include <linux/suspend.h>
#include <linux/component.h>
@@ -922,7 +923,7 @@ static int dss_init_ports(struct platform_device *pdev)
if (parent == NULL)
return 0;
- port = omapdss_of_get_next_port(parent, NULL);
+ port = of_graph_get_next_port(parent, NULL);
if (!port)
return 0;
@@ -953,7 +954,7 @@ static int dss_init_ports(struct platform_device *pdev)
break;
}
} while (!ret &&
- (port = omapdss_of_get_next_port(parent, port)) != NULL);
+ (port = of_graph_get_next_port(parent, port)) != NULL);
if (ret)
dss_uninit_ports(pdev);
@@ -969,7 +970,7 @@ static void dss_uninit_ports(struct platform_device *pdev)
if (parent == NULL)
return;
- port = omapdss_of_get_next_port(parent, NULL);
+ port = of_graph_get_next_port(parent, NULL);
if (!port)
return;
@@ -1000,7 +1001,7 @@ static void dss_uninit_ports(struct platform_device *pdev)
default:
break;
}
- } while ((port = omapdss_of_get_next_port(parent, port)) != NULL);
+ } while ((port = of_graph_get_next_port(parent, port)) != NULL);
}
static int dss_video_pll_probe(struct platform_device *pdev)
@@ -16,6 +16,7 @@
#include <linux/platform_device.h>
#include <linux/string.h>
#include <linux/of.h>
+#include <linux/of_graph.h>
#include <linux/component.h>
#include <video/omapfb_dss.h>
@@ -405,7 +406,7 @@ int sdi_init_port(struct platform_device *pdev, struct device_node *port)
u32 datapairs;
int r;
- ep = omapdss_of_get_next_endpoint(port, NULL);
+ ep = of_graph_get_next_port_endpoint(port, NULL);
if (!ep)
return 0;
@@ -811,14 +811,6 @@ static inline bool omapdss_device_is_enabled(struct omap_dss_device *dssdev)
return dssdev->state == OMAP_DSS_DISPLAY_ACTIVE;
}
-struct device_node *
-omapdss_of_get_next_port(const struct device_node *parent,
- struct device_node *prev);
-
-struct device_node *
-omapdss_of_get_next_endpoint(const struct device_node *parent,
- struct device_node *prev);
-
struct omap_dss_device *
omapdss_of_find_source_for_first_ep(struct device_node *node);
#else