From a5393210ee4ad152a489c8d556025ab09d0e2304 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 6 Jul 2005 15:26:27 -0400 Subject: [PATCH] --- yaml --- r: 4161 b: refs/heads/master c: b5bf5b6786ccfc9e0c8801291f463d92c8e0b423 h: refs/heads/master i: 4159: 9eb8632b618f74d75c8341755ac12fe46a35d3f6 v: v3 --- [refs] | 2 +- trunk/drivers/macintosh/Makefile | 2 +- trunk/drivers/macintosh/macio_asic.c | 3 ++ trunk/drivers/macintosh/macio_sysfs.c | 50 +++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 trunk/drivers/macintosh/macio_sysfs.c diff --git a/[refs] b/[refs] index f49ba7c6526e..d30d665796b8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5e6557722e69840506eb8bc5a1edcdb4e447a917 +refs/heads/master: b5bf5b6786ccfc9e0c8801291f463d92c8e0b423 diff --git a/trunk/drivers/macintosh/Makefile b/trunk/drivers/macintosh/Makefile index f5ae171dbfef..236291bd48a4 100644 --- a/trunk/drivers/macintosh/Makefile +++ b/trunk/drivers/macintosh/Makefile @@ -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_MEDIABAY) += mediabay.o obj-$(CONFIG_MAC_EMUMOUSEBTN) += mac_hid.o diff --git a/trunk/drivers/macintosh/macio_asic.c b/trunk/drivers/macintosh/macio_asic.c index 37b18ee08a2d..7fa369cfcceb 100644 --- a/trunk/drivers/macintosh/macio_asic.c +++ b/trunk/drivers/macintosh/macio_asic.c @@ -126,11 +126,14 @@ static int macio_device_resume(struct device * dev) 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) diff --git a/trunk/drivers/macintosh/macio_sysfs.c b/trunk/drivers/macintosh/macio_sysfs.c new file mode 100644 index 000000000000..97d22bb4516a --- /dev/null +++ b/trunk/drivers/macintosh/macio_sysfs.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include + + +#define macio_config_of_attr(field, format_string) \ +static ssize_t \ +field##_show (struct device *dev, struct device_attribute *attr, \ + 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, struct device_attribute *attr, 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\n", compat); + buf += length; + l = strlen (compat) + 1; + compat += l; + cplen -= l; + } + + return length; +} + +macio_config_of_attr (name, "%s\n"); +macio_config_of_attr (type, "%s\n"); + +struct device_attribute macio_dev_attrs[] = { + __ATTR_RO(name), + __ATTR_RO(type), + __ATTR_RO(compatible), + __ATTR_NULL +};