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@xxxxxxxxxxx> > --- > 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