mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 17:17:04 -04:00
greybus: vibrator-gb: fixes based on Marti's review comments.
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
@@ -13,6 +13,13 @@
|
||||
#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)
|
||||
@@ -23,13 +30,6 @@
|
||||
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 */
|
||||
|
||||
@@ -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 @@ static int turn_on(struct gb_vibrator_device *vib, u16 timeout_ms)
|
||||
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]);
|
||||
|
||||
Reference in New Issue
Block a user