Message ID | 87zfox1b9m.wl-kuninori.morimoto.gx@renesas.com |
---|---|
State | Superseded |
Headers | show |
Series | of: property: add of_graph_get_next_port/port_endpoint() | expand |
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
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; - 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) diff --git a/drivers/video/fbdev/omap2/omapfb/dss/sdi.c b/drivers/video/fbdev/omap2/omapfb/dss/sdi.c index d527931b2b165..22a6243d7abfb 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/sdi.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/sdi.c @@ -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; diff --git a/include/video/omapfb_dss.h b/include/video/omapfb_dss.h index a8c0c3eeeb5ba..d133190e31438 100644 --- a/include/video/omapfb_dss.h +++ b/include/video/omapfb_dss.h @@ -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
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(-)