|
@@ -108,9 +108,7 @@ ATTRIBUTE_GROUPS(vibrator);
|
|
|
static struct class vibrator_class = {
|
|
|
.name = "vibrator",
|
|
|
.owner = THIS_MODULE,
|
|
|
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)
|
|
|
.dev_groups = vibrator_groups,
|
|
|
-#endif
|
|
|
};
|
|
|
|
|
|
static DEFINE_IDA(minors);
|
|
@@ -169,19 +167,6 @@ static int gb_vibrator_probe(struct gb_bundle *bundle,
|
|
|
}
|
|
|
vib->dev = dev;
|
|
|
|
|
|
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,11,0)
|
|
|
- /*
|
|
|
- * 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]);
|
|
|
- if (retval) {
|
|
|
- device_unregister(dev);
|
|
|
- goto err_ida_remove;
|
|
|
- }
|
|
|
-#endif
|
|
|
-
|
|
|
INIT_DELAYED_WORK(&vib->delayed_work, gb_vibrator_worker);
|
|
|
|
|
|
gb_pm_runtime_put_autosuspend(bundle);
|
|
@@ -212,9 +197,6 @@ static void gb_vibrator_disconnect(struct gb_bundle *bundle)
|
|
|
if (cancel_delayed_work_sync(&vib->delayed_work))
|
|
|
turn_off(vib);
|
|
|
|
|
|
-#if LINUX_VERSION_CODE <= KERNEL_VERSION(3,11,0)
|
|
|
- sysfs_remove_group(&vib->dev->kobj, vibrator_groups[0]);
|
|
|
-#endif
|
|
|
device_unregister(vib->dev);
|
|
|
ida_simple_remove(&minors, vib->minor);
|
|
|
gb_connection_disable(vib->connection);
|