public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2/3] openfirmware: adds sysfs nodes for openfirmware devices
@ 2005-03-01 21:18 Jeffrey Mahoney
  2005-03-02 23:32 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 16+ messages in thread
From: Jeffrey Mahoney @ 2005-03-01 21:18 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds, Linux Kernel Mailing List,
	Benjamin Herrenschmidt

This patch adds sysfs nodes that the hotplug userspace can use to load the
appropriate modules.

In order for hotplug to work with macio devices, patches to module-init-tools
and hotplug must be applied. Those patches are available at:

ftp://ftp.suse.com/pub/people/jeffm/linux/macio-hotplug/

Signed-off-by: Jeff Mahoney <jeffm@suse.com>

diff -rupN -X dontdiff linux-2.6.8/drivers/macintosh/macio_sysfs.c linux-2.6.8.devel/drivers/macintosh/macio_sysfs.c
--- linux-2.6.8/drivers/macintosh/macio_sysfs.c	1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.8.devel/drivers/macintosh/macio_sysfs.c	2004-09-16 17:12:37.244919704 -0400
@@ -0,0 +1,49 @@
+#include <linux/config.h>
+#include <linux/kernel.h>
+#include <linux/stat.h>
+#include <asm/macio.h>
+
+
+#define macio_config_of_attr(field, format_string)              \
+static ssize_t                                                  \
+field##_show (struct device *dev, char *buf)                    \
+{                                                               \
+    struct macio_dev *mdev = to_macio_device (dev);             \
+    return sprintf (buf, format_string, mdev->ofdev.node->field);     \
+}
+
+static ssize_t
+compatible_show (struct device *dev, char *buf)        
+{
+        struct of_device *of;
+        char *compat;
+        int cplen;
+        int length = 0;
+        
+        of = &to_macio_device (dev)->ofdev;
+	compat = (char *) get_property(of->node, "compatible", &cplen);
+	if (!compat) {
+		*buf = '\0';
+		return 0;
+	}
+	while (cplen > 0) {
+		int l;
+		length += sprintf (buf, "%s%s", length ? "," : "", compat);
+		buf += length;
+		l = strlen (compat) + 1;
+		compat += l;
+		cplen -= l;
+	}
+
+	return length;
+}
+
+macio_config_of_attr (name, "%s");
+macio_config_of_attr (type, "%s");
+
+struct device_attribute macio_dev_attrs[] = {
+	__ATTR_RO(name),
+	__ATTR_RO(type),
+	__ATTR_RO(compatible),
+	__ATTR_NULL
+};
diff -rupN -X dontdiff linux-2.6.8/drivers/macintosh/Makefile linux-2.6.8.devel/drivers/macintosh/Makefile
--- linux-2.6.8/drivers/macintosh/Makefile	2004-08-14 01:37:40.000000000 -0400
+++ linux-2.6.8.devel/drivers/macintosh/Makefile	2004-09-16 17:12:37.252918488 -0400
@@ -4,7 +4,7 @@
 
 # Each configuration option enables a list of files.
 
-obj-$(CONFIG_PPC_PMAC)		+= macio_asic.o
+obj-$(CONFIG_PPC_PMAC)		+= macio_asic.o macio_sysfs.o
 
 obj-$(CONFIG_PMAC_PBOOK)	+= mediabay.o
 obj-$(CONFIG_MAC_SERIAL)	+= macserial.o

diff -rupN -X dontdiff linux-2.6.8/drivers/macintosh/macio_asic.c linux-2.6.8.devel/drivers/macintosh/macio_asic.c
--- linux-2.6.8/drivers/macintosh/macio_asic.c	2004-08-14 01:36:45.000000000 -0400
+++ linux-2.6.8.devel/drivers/macintosh/macio_asic.c	2004-09-16 17:12:37.242920008 -0400
@@ -126,10 +126,13 @@ static int macio_device_resume(struct de
 	return 0;
 }
 
+extern struct device_attribute macio_dev_attrs[];
+
 struct bus_type macio_bus_type = {
        .name	= "macio",
        .match	= macio_bus_match,
        .suspend	= macio_device_suspend,
        .resume	= macio_device_resume,
+       .dev_attrs = macio_dev_attrs,
 };
 
 static int __init macio_bus_driver_init(void)
-- 
Jeff Mahoney
SuSE Labs

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2005-03-14 21:49 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-01 21:18 [PATCH 2/3] openfirmware: adds sysfs nodes for openfirmware devices Jeffrey Mahoney
2005-03-02 23:32 ` Benjamin Herrenschmidt
2005-03-03 18:19   ` Jeff Mahoney
2005-03-03 20:23     ` Olaf Hering
2005-03-03 21:17       ` Jeff Mahoney
2005-03-04 11:02         ` Olaf Hering
2005-03-04 16:35           ` Jeff Mahoney
2005-03-13 15:17         ` Segher Boessenkool
2005-03-14 14:03           ` Benjamin Herrenschmidt
2005-03-14 14:06             ` Olaf Hering
2005-03-14 14:27             ` Segher Boessenkool
2005-03-14 15:04               ` Benjamin Herrenschmidt
2005-03-14 15:19                 ` Jeff Mahoney
2005-03-14 15:19                 ` Segher Boessenkool
2005-03-14 21:47                   ` Benjamin Herrenschmidt
2005-03-03 22:52     ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox