]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
greybus: vibrator-gb: fixes based on Marti's review comments.
authorGreg Kroah-Hartman <greg@kroah.com>
Tue, 18 Nov 2014 00:55:54 +0000 (16:55 -0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Tue, 18 Nov 2014 00:55:54 +0000 (16:55 -0800)
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/staging/greybus/kernel_ver.h
drivers/staging/greybus/vibrator-gb.c

index ca0da11e4d8d73a29dbcfa55188e2a201b52b988..a39ceafb9d9b664a401564559ddcf677ba6a486b 100644 (file)
 #ifndef __GREYBUS_KERNEL_VER_H
 #define __GREYBUS_KERNEL_VER_H
 
+#ifndef __ATTR_WO
+#define __ATTR_WO(_name) {                                             \
+        .attr   = { .name = __stringify(_name), .mode = S_IWUSR },      \
+        .store  = _name##_store,                                        \
+}
+#endif
+
 #ifndef DEVICE_ATTR_RO
 #define DEVICE_ATTR_RO(_name) \
        struct device_attribute dev_attr_##_name = __ATTR_RO(_name)
        struct device_attribute dev_attr_##_name = __ATTR_WO(_name)
 #endif
 
-#ifndef __ATTR_WO
-#define __ATTR_WO(_name) {                                             \
-        .attr   = { .name = __stringify(_name), .mode = S_IWUSR },      \
-        .store  = _name##_store,                                        \
-}
-#endif
-
 #ifndef U8_MAX
 #define U8_MAX ((u8)~0U)
 #endif /* ! U8_MAX */
index 2fcb2a45c2543e81b9147b564dfddc5e172227f2..22356afb1bad931b221bec976f877e5a3d77a1a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * I2C bridge driver for the Greybus "generic" I2C module.
+ * Greybus Vibrator protocol driver.
  *
  * Copyright 2014 Google Inc.
  *
@@ -153,20 +153,13 @@ out:
        gb_operation_destroy(operation);
 
        return retval;
-
-       return 0;
 }
 
 static int turn_off(struct gb_vibrator_device *vib)
 {
        struct gb_connection *connection = vib->connection;
-       int retval;
 
-       retval = request_operation(connection, GB_VIBRATOR_TYPE_OFF, NULL, 0);
-       if (retval)
-               return retval;
-
-       return 0;
+       return request_operation(connection, GB_VIBRATOR_TYPE_OFF, NULL, 0);
 }
 
 static ssize_t timeout_store(struct device *dev, struct device_attribute *attr,
@@ -232,7 +225,7 @@ static int gb_vibrator_connection_init(struct gb_connection *connection)
         * are there is a "real" device somewhere in the kernel for this, but I
         * can't find it at the moment...
         */
-       dev = device_create(&vibrator_class, NULL, MKDEV(0, 0), vib,
+       dev = device_create(&vibrator_class, &connection->dev, MKDEV(0, 0), vib,
                            "vibrator%d", minor);
        if (IS_ERR(dev)) {
                retval = -EINVAL;
@@ -243,7 +236,8 @@ static int gb_vibrator_connection_init(struct gb_connection *connection)
 
 #if LINUX_VERSION_CODE <= KERNEL_VERSION(3,11,0)
        /*
-        * Newer kernels handle this in a race-free manner, for us, we need
+        * Newer kernels handle this in a race-free manner, by the dev_groups
+        * field in the struct class up above.  But for older kernels, we need
         * to "open code this :(
         */
        retval = sysfs_create_group(&dev->kobj, vibrator_groups[0]);