All of lore.kernel.org
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
To: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: "linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Subject: Re: [RFC] Add of_path property for all devices with a node
Date: Fri, 07 Nov 2014 17:35:17 +1100	[thread overview]
Message-ID: <1415342117.4925.29.camel@kernel.crashing.org> (raw)
In-Reply-To: <1415342031.4925.27.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>

On Fri, 2014-11-07 at 17:33 +1100, Benjamin Herrenschmidt wrote:

> So I came up with this patch, 

And here is the actual patch, which might help :-) It's pretty trivial
and small...

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 20da3ad..dd0ee1b 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -26,6 +26,7 @@
 #include <linux/pm_runtime.h>
 #include <linux/netdevice.h>
 #include <linux/sysfs.h>
+#include <linux/of.h>
 
 #include "base.h"
 #include "power/power.h"
@@ -454,6 +455,23 @@ static ssize_t online_store(struct device *dev, struct device_attribute *attr,
 }
 static DEVICE_ATTR_RW(online);
 
+#ifdef CONFIG_OF
+
+static ssize_t of_path_show(struct device *dev, struct device_attribute *attr,
+			    char *buf)
+{
+	ssize_t s = 0;
+
+	device_lock(dev);
+	if (dev->of_node)
+		s = sprintf(buf, "%s\n", dev->of_node->full_name);
+	device_unlock(dev);
+	return s;
+}
+static DEVICE_ATTR_RO(of_path);
+
+#endif /* CONFIG_OF */
+
 int device_add_groups(struct device *dev, const struct attribute_group **groups)
 {
 	return sysfs_create_groups(&dev->kobj, groups);
@@ -487,15 +505,27 @@ static int device_add_attrs(struct device *dev)
 	if (error)
 		goto err_remove_type_groups;
 
+#ifdef CONFIG_OF
+	if (dev->of_node) {
+		error = device_create_file(dev, &dev_attr_of_path);
+		if (error)
+			goto err_remove_dev_groups;
+	}
+#endif /* CONFIG_OF */
+
 	if (device_supports_offline(dev) && !dev->offline_disabled) {
 		error = device_create_file(dev, &dev_attr_online);
 		if (error)
-			goto err_remove_dev_groups;
+			goto err_remove_of_path;
 	}
 
 	return 0;
 
+ err_remove_of_path:
+#ifdef CONFIG_OF
+	device_remove_file(dev, &dev_attr_of_path);
  err_remove_dev_groups:
+#endif
 	device_remove_groups(dev, dev->groups);
  err_remove_type_groups:
 	if (type)


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

WARNING: multiple messages have this Message-ID (diff)
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: devicetree@vger.kernel.org
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Rob Herring <robherring2@gmail.com>,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [RFC] Add of_path property for all devices with a node
Date: Fri, 07 Nov 2014 17:35:17 +1100	[thread overview]
Message-ID: <1415342117.4925.29.camel@kernel.crashing.org> (raw)
In-Reply-To: <1415342031.4925.27.camel@kernel.crashing.org>

On Fri, 2014-11-07 at 17:33 +1100, Benjamin Herrenschmidt wrote:

> So I came up with this patch, 

And here is the actual patch, which might help :-) It's pretty trivial
and small...

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 20da3ad..dd0ee1b 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -26,6 +26,7 @@
 #include <linux/pm_runtime.h>
 #include <linux/netdevice.h>
 #include <linux/sysfs.h>
+#include <linux/of.h>
 
 #include "base.h"
 #include "power/power.h"
@@ -454,6 +455,23 @@ static ssize_t online_store(struct device *dev, struct device_attribute *attr,
 }
 static DEVICE_ATTR_RW(online);
 
+#ifdef CONFIG_OF
+
+static ssize_t of_path_show(struct device *dev, struct device_attribute *attr,
+			    char *buf)
+{
+	ssize_t s = 0;
+
+	device_lock(dev);
+	if (dev->of_node)
+		s = sprintf(buf, "%s\n", dev->of_node->full_name);
+	device_unlock(dev);
+	return s;
+}
+static DEVICE_ATTR_RO(of_path);
+
+#endif /* CONFIG_OF */
+
 int device_add_groups(struct device *dev, const struct attribute_group **groups)
 {
 	return sysfs_create_groups(&dev->kobj, groups);
@@ -487,15 +505,27 @@ static int device_add_attrs(struct device *dev)
 	if (error)
 		goto err_remove_type_groups;
 
+#ifdef CONFIG_OF
+	if (dev->of_node) {
+		error = device_create_file(dev, &dev_attr_of_path);
+		if (error)
+			goto err_remove_dev_groups;
+	}
+#endif /* CONFIG_OF */
+
 	if (device_supports_offline(dev) && !dev->offline_disabled) {
 		error = device_create_file(dev, &dev_attr_online);
 		if (error)
-			goto err_remove_dev_groups;
+			goto err_remove_of_path;
 	}
 
 	return 0;
 
+ err_remove_of_path:
+#ifdef CONFIG_OF
+	device_remove_file(dev, &dev_attr_of_path);
  err_remove_dev_groups:
+#endif
 	device_remove_groups(dev, dev->groups);
  err_remove_type_groups:
 	if (type)



  parent reply	other threads:[~2014-11-07  6:35 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-07  6:33 [RFC] Add of_path property for all devices with a node Benjamin Herrenschmidt
2014-11-07  6:33 ` Benjamin Herrenschmidt
     [not found] ` <1415342031.4925.27.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2014-11-07  6:35   ` Benjamin Herrenschmidt [this message]
2014-11-07  6:35     ` Benjamin Herrenschmidt
     [not found]     ` <1415342117.4925.29.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2014-11-10  5:17       ` Benjamin Herrenschmidt
2014-11-10  5:17         ` Benjamin Herrenschmidt
2014-11-10 14:06         ` Rob Herring
2014-11-10 22:48           ` Benjamin Herrenschmidt
2014-11-18 15:18           ` Grant Likely
     [not found]             ` <CACxGe6vg8SxwCHZ8HxzLzimQOAf8Q81wd5eO=x2LavD4dv81Rw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19  2:25               ` Benjamin Herrenschmidt
2014-11-19  2:25                 ` Benjamin Herrenschmidt
     [not found]           ` <CAL_JsqKG=vpeGKj3v-2VW9oGQsnmuYMHRfy6LuXDXE=ROjHT4w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-13  1:10             ` [PATCH] drivers/core/of: Add symlink to device-tree from devices with an OF node Benjamin Herrenschmidt
2014-11-13  1:10               ` Benjamin Herrenschmidt
2014-11-18 16:37               ` Rob Herring
2014-11-18 23:39                 ` Jeremy Kerr
2014-11-18 23:53                   ` Jeremy Kerr
     [not found]                   ` <546BD8BD.2010605-8fk3Idey6ehBDgjK7y7TUQ@public.gmane.org>
2014-11-19  2:35                     ` Benjamin Herrenschmidt
2014-11-19  2:35                       ` Benjamin Herrenschmidt
     [not found]                       ` <1416364544.5704.23.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2014-11-19  8:38                         ` Arnd Bergmann
2014-11-19  8:38                           ` Arnd Bergmann
2014-11-19 14:45                           ` Rob Herring
2014-11-19 14:45                             ` Rob Herring
     [not found]                             ` <CAL_JsqKk5UdFEa02wA+3N5BCM7coWAK=4jAr96Pw5eFh2n0ioQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19 14:49                               ` Arnd Bergmann
2014-11-19 14:49                                 ` Arnd Bergmann
2014-11-19 15:39                                 ` Rob Herring
2014-11-19 15:39                                   ` Rob Herring
     [not found]                                   ` <CAL_JsqJm9c+GozQssLmjuSLzcsqDiMW8=1P_fM6-Zfdk=N6Lqg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19 16:30                                     ` Grant Likely
2014-11-19 16:30                                       ` Grant Likely
     [not found]                 ` <CAL_Jsq+YyfMWxiOFv4x3g5hZJH0XRqCKj2He1XO9eyXWjHTMrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-11-19  2:30                   ` Benjamin Herrenschmidt
2014-11-19  2:30                     ` Benjamin Herrenschmidt
     [not found]               ` <1415841047.5124.62.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2014-11-27  3:39                 ` Greg KH
2014-11-27  3:39                   ` Greg KH
     [not found]                   ` <20141127033923.GA28286-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-11-27  6:24                     ` Benjamin Herrenschmidt
2014-11-27  6:24                       ` Benjamin Herrenschmidt
2015-02-18  0:25             ` [PATCH 2/2 v3] " Benjamin Herrenschmidt
2015-02-18  0:25               ` Benjamin Herrenschmidt
     [not found]               ` <1424219118.21410.111.camel-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2015-02-18  1:07                 ` Rob Herring
2015-02-18  1:07                   ` Rob Herring
2015-02-18  4:57                   ` Greg Kroah-Hartman
2015-02-18  9:50                     ` Benjamin Herrenschmidt
2015-03-10 14:22                       ` Rob Herring
2015-03-10 15:11                         ` Greg Kroah-Hartman
2015-02-18  4:57               ` Greg Kroah-Hartman
2014-11-13  4:28   ` [RFC] Add of_path property for all devices with a node Frank Rowand
2014-11-13  4:28     ` Frank Rowand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1415342117.4925.29.camel@kernel.crashing.org \
    --to=benh-xvmvhmargas8u2djnn8i7kb+6bgklq7r@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.