[V2] of: platform: Create dummy routines for !CONFIG_OF_ADDRESS

Message ID 2d798213e4fefc074a66ccb7ab2fc243ee2b1e1a.1509186356.git.viresh.kumar@linaro.org
State New
Headers show
Series
  • [V2] of: platform: Create dummy routines for !CONFIG_OF_ADDRESS
Related show

Commit Message

Viresh Kumar Oct. 28, 2017, 10:26 a.m.
Few routines don't have their dummy counterparts which results in build
failures where these routines are used without CONFIG_OF_ADDRESS
enabled.

Fix those by defining the dummy versions.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

---
V2:
- Rebased again latest rc and resolved conflicts.
- No comments received on V1.

 include/linux/of_platform.h | 39 +++++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)

-- 
2.15.0.rc1.236.g92ea95045093

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rob Herring Nov. 1, 2017, 9:14 p.m. | #1
On Sat, Oct 28, 2017 at 03:56:46PM +0530, Viresh Kumar wrote:
> Few routines don't have their dummy counterparts which results in build

> failures where these routines are used without CONFIG_OF_ADDRESS

> enabled.

> 

> Fix those by defining the dummy versions.

> 

> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

> ---

> V2:

> - Rebased again latest rc and resolved conflicts.

> - No comments received on V1.


What's your user?

>  include/linux/of_platform.h | 39 +++++++++++++++++++++++++++++++++------

>  1 file changed, 33 insertions(+), 6 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Viresh Kumar Nov. 2, 2017, 4:48 a.m. | #2
On 01-11-17, 16:14, Rob Herring wrote:
> On Sat, Oct 28, 2017 at 03:56:46PM +0530, Viresh Kumar wrote:

> > Few routines don't have their dummy counterparts which results in build

> > failures where these routines are used without CONFIG_OF_ADDRESS

> > enabled.

> > 

> > Fix those by defining the dummy versions.

> > 

> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

> > ---

> > V2:

> > - Rebased again latest rc and resolved conflicts.

> > - No comments received on V1.

> 

> What's your user?


It was the previous version of boot constraint core, though I have
moved to another helper now.

https://marc.info/?l=linux-kernel&m=150157976217258&w=2

Wouldn't it be better to define them anyway?

-- 
viresh
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Nov. 2, 2017, 12:40 p.m. | #3
On Wed, Nov 1, 2017 at 11:48 PM, Viresh Kumar <viresh.kumar@linaro.org> wrote:
> On 01-11-17, 16:14, Rob Herring wrote:

>> On Sat, Oct 28, 2017 at 03:56:46PM +0530, Viresh Kumar wrote:

>> > Few routines don't have their dummy counterparts which results in build

>> > failures where these routines are used without CONFIG_OF_ADDRESS

>> > enabled.

>> >

>> > Fix those by defining the dummy versions.

>> >

>> > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>

>> > ---

>> > V2:

>> > - Rebased again latest rc and resolved conflicts.

>> > - No comments received on V1.

>>

>> What's your user?

>

> It was the previous version of boot constraint core, though I have

> moved to another helper now.

>

> https://marc.info/?l=linux-kernel&m=150157976217258&w=2

>

> Wouldn't it be better to define them anyway?


No. As an example, ideally of_device_alloc would be an internal
function. But we have one user in ibmebus.

Rob
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Viresh Kumar Nov. 3, 2017, 3:43 a.m. | #4
On 02-11-17, 07:40, Rob Herring wrote:
> No. As an example, ideally of_device_alloc would be an internal

> function. But we have one user in ibmebus.


Okay. Lets abandon this change then.

-- 
viresh
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/include/linux/of_platform.h b/include/linux/of_platform.h
index fb908e598348..8a561e08bc9e 100644
--- a/include/linux/of_platform.h
+++ b/include/linux/of_platform.h
@@ -52,11 +52,6 @@  struct of_dev_auxdata {
 	  .platform_data = _pdata }
 
 extern const struct of_device_id of_default_bus_match_table[];
-
-/* Platform drivers register/unregister */
-extern struct platform_device *of_device_alloc(struct device_node *np,
-					 const char *bus_id,
-					 struct device *parent);
 #ifdef CONFIG_OF
 extern struct platform_device *of_find_device_by_node(struct device_node *np);
 #else
@@ -66,6 +61,12 @@  static inline struct platform_device *of_find_device_by_node(struct device_node
 }
 #endif
 
+#ifdef CONFIG_OF_ADDRESS
+/* Platform drivers register/unregister */
+extern struct platform_device *of_device_alloc(struct device_node *np,
+					 const char *bus_id,
+					 struct device *parent);
+
 /* Platform devices and busses creation */
 extern struct platform_device *of_platform_device_create(struct device_node *np,
 						   const char *bus_id,
@@ -75,7 +76,6 @@  extern int of_platform_device_destroy(struct device *dev, void *data);
 extern int of_platform_bus_probe(struct device_node *root,
 				 const struct of_device_id *matches,
 				 struct device *parent);
-#ifdef CONFIG_OF_ADDRESS
 extern int of_platform_populate(struct device_node *root,
 				const struct of_device_id *matches,
 				const struct of_dev_auxdata *lookup,
@@ -89,6 +89,33 @@  extern int devm_of_platform_populate(struct device *dev);
 
 extern void devm_of_platform_depopulate(struct device *dev);
 #else
+static inline struct platform_device *
+of_device_alloc(struct device_node *np, const char *bus_id,
+		struct device *parent)
+{
+	return NULL;
+}
+
+/* Platform devices and busses creation */
+static inline struct platform_device *
+of_platform_device_create(struct device_node *np, const char *bus_id,
+			  struct device *parent)
+{
+	return NULL;
+}
+
+static inline int of_platform_device_destroy(struct device *dev, void *data)
+{
+	return -ENODEV;
+}
+
+static inline int of_platform_bus_probe(struct device_node *root,
+					const struct of_device_id *matches,
+					struct device *parent)
+{
+	return -ENODEV;
+}
+
 static inline int of_platform_populate(struct device_node *root,
 					const struct of_device_id *matches,
 					const struct of_dev_auxdata *lookup,