]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/macintosh/macio_sysfs.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
[linux-2.6-omap-h63xx.git] / drivers / macintosh / macio_sysfs.c
index 97d22bb4516ac2a73449d8551430c47a75eb4e1e..9e9453b584250f61b6a741861df2608e27cfb63e 100644 (file)
@@ -1,4 +1,3 @@
-#include <linux/config.h>
 #include <linux/kernel.h>
 #include <linux/stat.h>
 #include <asm/macio.h>
@@ -17,12 +16,12 @@ static ssize_t
 compatible_show (struct device *dev, struct device_attribute *attr, char *buf)
 {
        struct of_device *of;
-       char *compat;
+       const char *compat;
        int cplen;
        int length = 0;
 
        of = &to_macio_device (dev)->ofdev;
-       compat = (char *) get_property(of->node, "compatible", &cplen);
+       compat = of_get_property(of->node, "compatible", &cplen);
        if (!compat) {
                *buf = '\0';
                return 0;
@@ -39,6 +38,29 @@ compatible_show (struct device *dev, struct device_attribute *attr, char *buf)
        return length;
 }
 
+static ssize_t modalias_show (struct device *dev, struct device_attribute *attr,
+                             char *buf)
+{
+       struct of_device *ofdev = to_of_device(dev);
+       int len;
+
+       len = of_device_get_modalias(ofdev, buf, PAGE_SIZE - 2);
+
+       buf[len] = '\n';
+       buf[len+1] = 0;
+
+       return len+1;
+}
+
+static ssize_t devspec_show(struct device *dev,
+                               struct device_attribute *attr, char *buf)
+{
+       struct of_device *ofdev;
+
+       ofdev = to_of_device(dev);
+       return sprintf(buf, "%s\n", ofdev->node->full_name);
+}
+
 macio_config_of_attr (name, "%s\n");
 macio_config_of_attr (type, "%s\n");
 
@@ -46,5 +68,7 @@ struct device_attribute macio_dev_attrs[] = {
        __ATTR_RO(name),
        __ATTR_RO(type),
        __ATTR_RO(compatible),
+       __ATTR_RO(modalias),
+       __ATTR_RO(devspec),
        __ATTR_NULL
 };