Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[pandora-kernel.git] / drivers / zorro / zorro-sysfs.c
index 5290552..eb924e0 100644 (file)
@@ -77,17 +77,32 @@ static struct bin_attribute zorro_config_attr = {
        .read = zorro_read_config,
 };
 
-void zorro_create_sysfs_dev_files(struct zorro_dev *z)
+static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
+                            char *buf)
+{
+       struct zorro_dev *z = to_zorro_dev(dev);
+
+       return sprintf(buf, ZORRO_DEVICE_MODALIAS_FMT "\n", z->id);
+}
+
+static DEVICE_ATTR(modalias, S_IRUGO, modalias_show, NULL);
+
+int zorro_create_sysfs_dev_files(struct zorro_dev *z)
 {
        struct device *dev = &z->dev;
+       int error;
 
        /* current configuration's attributes */
-       device_create_file(dev, &dev_attr_id);
-       device_create_file(dev, &dev_attr_type);
-       device_create_file(dev, &dev_attr_serial);
-       device_create_file(dev, &dev_attr_slotaddr);
-       device_create_file(dev, &dev_attr_slotsize);
-       device_create_file(dev, &dev_attr_resource);
-       sysfs_create_bin_file(&dev->kobj, &zorro_config_attr);
+       if ((error = device_create_file(dev, &dev_attr_id)) ||
+           (error = device_create_file(dev, &dev_attr_type)) ||
+           (error = device_create_file(dev, &dev_attr_serial)) ||
+           (error = device_create_file(dev, &dev_attr_slotaddr)) ||
+           (error = device_create_file(dev, &dev_attr_slotsize)) ||
+           (error = device_create_file(dev, &dev_attr_resource)) ||
+           (error = device_create_file(dev, &dev_attr_modalias)) ||
+           (error = sysfs_create_bin_file(&dev->kobj, &zorro_config_attr)))
+               return error;
+
+       return 0;
 }