From fd9fdb78a9bf85b94fb2190c82ff280c8f8375cc Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Mon, 10 Feb 2014 22:01:48 +0100
Subject: [media] of: move graph helpers from drivers/media/v4l2-core to
drivers/of
This patch moves the parsing helpers used to parse connected graphs
in the device tree, like the video interface bindings documented in
Documentation/devicetree/bindings/media/video-interfaces.txt, from
drivers/media/v4l2-core/v4l2-of.c into drivers/of/base.c.
This allows to reuse the same parser code from outside the V4L2
framework, most importantly from display drivers.
The functions v4l2_of_get_next_endpoint, v4l2_of_get_remote_port,
and v4l2_of_get_remote_port_parent are moved. They are renamed to
of_graph_get_next_endpoint, of_graph_get_remote_port, and
of_graph_get_remote_port_parent, respectively.
Since there are not that many current users yet, switch all of
them to the new functions right away.
Signed-off-by: Philipp Zabel
Acked-by: Tomi Valkeinen
Acked-by: Mauro Carvalho Chehab
Acked-by: Sylwester Nawrocki
---
include/linux/of_graph.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
create mode 100644 include/linux/of_graph.h
(limited to 'include/linux')
diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h
new file mode 100644
index 000000000000..3bbeb609a360
--- /dev/null
+++ b/include/linux/of_graph.h
@@ -0,0 +1,46 @@
+/*
+ * OF graph binding parsing helpers
+ *
+ * Copyright (C) 2012 - 2013 Samsung Electronics Co., Ltd.
+ * Author: Sylwester Nawrocki
+ *
+ * Copyright (C) 2012 Renesas Electronics Corp.
+ * Author: Guennadi Liakhovetski
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ */
+#ifndef __LINUX_OF_GRAPH_H
+#define __LINUX_OF_GRAPH_H
+
+#ifdef CONFIG_OF
+struct device_node *of_graph_get_next_endpoint(const struct device_node *parent,
+ struct device_node *previous);
+struct device_node *of_graph_get_remote_port_parent(
+ const struct device_node *node);
+struct device_node *of_graph_get_remote_port(const struct device_node *node);
+#else
+
+static inline struct device_node *of_graph_get_next_endpoint(
+ const struct device_node *parent,
+ struct device_node *previous)
+{
+ return NULL;
+}
+
+static inline struct device_node *of_graph_get_remote_port_parent(
+ const struct device_node *node)
+{
+ return NULL;
+}
+
+static inline struct device_node *of_graph_get_remote_port(
+ const struct device_node *node)
+{
+ return NULL;
+}
+
+#endif /* CONFIG_OF */
+
+#endif /* __LINUX_OF_GRAPH_H */
--
cgit v1.2.3
From f2a575f67695dcba9062acd666ae5aab2380b95c Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Fri, 14 Feb 2014 11:53:56 +0100
Subject: [media] of: move common endpoint parsing to drivers/of
This patch adds a new struct of_endpoint which is then embedded in struct
v4l2_of_endpoint and contains the endpoint properties that are not V4L2
(or even media) specific: the port number, endpoint id, local device tree
node and remote endpoint phandle. of_graph_parse_endpoint parses those
properties and is used by v4l2_of_parse_endpoint, which just adds the
V4L2 MBUS information to the containing v4l2_of_endpoint structure.
Signed-off-by: Philipp Zabel
Acked-by: Tomi Valkeinen
Acked-by: Mauro Carvalho Chehab
Acked-by: Sylwester Nawrocki
---
include/linux/of_graph.h | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
(limited to 'include/linux')
diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h
index 3bbeb609a360..2b233db76237 100644
--- a/include/linux/of_graph.h
+++ b/include/linux/of_graph.h
@@ -14,7 +14,21 @@
#ifndef __LINUX_OF_GRAPH_H
#define __LINUX_OF_GRAPH_H
+/**
+ * struct of_endpoint - the OF graph endpoint data structure
+ * @port: identifier (value of reg property) of a port this endpoint belongs to
+ * @id: identifier (value of reg property) of this endpoint
+ * @local_node: pointer to device_node of this endpoint
+ */
+struct of_endpoint {
+ unsigned int port;
+ unsigned int id;
+ const struct device_node *local_node;
+};
+
#ifdef CONFIG_OF
+int of_graph_parse_endpoint(const struct device_node *node,
+ struct of_endpoint *endpoint);
struct device_node *of_graph_get_next_endpoint(const struct device_node *parent,
struct device_node *previous);
struct device_node *of_graph_get_remote_port_parent(
@@ -22,6 +36,12 @@ struct device_node *of_graph_get_remote_port_parent(
struct device_node *of_graph_get_remote_port(const struct device_node *node);
#else
+static inline int of_graph_parse_endpoint(const struct device_node *node,
+ struct of_endpoint *endpoint);
+{
+ return -ENOSYS;
+}
+
static inline struct device_node *of_graph_get_next_endpoint(
const struct device_node *parent,
struct device_node *previous)
--
cgit v1.2.3
From 00fd9619120db1d6a19be2f9e3df6f76234b311b Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Fri, 7 Mar 2014 15:49:54 +0100
Subject: of: Fix of_graph_parse_endpoint stub for !CONFIG_OF builds
This patch fixes the following build error:
In file included from drivers/media/i2c/adv7343.c:29:0:
>> include/linux/of_graph.h:41:1: error: expected identifier or '(' before '{' token
{
^
include/linux/of_graph.h:39:19: warning: 'of_graph_parse_endpoint' declared 'static' but never defined [-Wunused-function]
static inline int of_graph_parse_endpoint(const struct device_node *node,
^
vim +41 include/linux/of_graph.h
35 const struct device_node *node);
36 struct device_node *of_graph_get_remote_port(const struct device_node *node);
37 #else
38
39 static inline int of_graph_parse_endpoint(const struct device_node *node,
40 struct of_endpoint *endpoint);
> 41 {
42 return -ENOSYS;
43 }
44
Reported-by: kbuild test robot
Signed-off-by: Philipp Zabel
---
include/linux/of_graph.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'include/linux')
diff --git a/include/linux/of_graph.h b/include/linux/of_graph.h
index 2b233db76237..befef42e015b 100644
--- a/include/linux/of_graph.h
+++ b/include/linux/of_graph.h
@@ -37,7 +37,7 @@ struct device_node *of_graph_get_remote_port(const struct device_node *node);
#else
static inline int of_graph_parse_endpoint(const struct device_node *node,
- struct of_endpoint *endpoint);
+ struct of_endpoint *endpoint)
{
return -ENOSYS;
}
--
cgit v1.2.3