Input: gpio_keys - use devm_device_add_group() for attributes

Now that we have proper managed API to create device attributes, let's
start using it instead of the manual unwinding.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Dmitry Torokhov 2017-07-19 17:24:34 -07:00 committed by Greg Kroah-Hartman
parent 57b8ff070f
commit 3184125ee2
1 changed files with 2 additions and 14 deletions

View File

@ -814,7 +814,7 @@ static int gpio_keys_probe(struct platform_device *pdev)
fwnode_handle_put(child); fwnode_handle_put(child);
error = sysfs_create_group(&dev->kobj, &gpio_keys_attr_group); error = devm_device_add_group(dev, &gpio_keys_attr_group);
if (error) { if (error) {
dev_err(dev, "Unable to export keys/switches, error: %d\n", dev_err(dev, "Unable to export keys/switches, error: %d\n",
error); error);
@ -825,22 +825,11 @@ static int gpio_keys_probe(struct platform_device *pdev)
if (error) { if (error) {
dev_err(dev, "Unable to register input device, error: %d\n", dev_err(dev, "Unable to register input device, error: %d\n",
error); error);
goto err_remove_group; return error;
} }
device_init_wakeup(dev, wakeup); device_init_wakeup(dev, wakeup);
return 0;
err_remove_group:
sysfs_remove_group(&dev->kobj, &gpio_keys_attr_group);
return error;
}
static int gpio_keys_remove(struct platform_device *pdev)
{
sysfs_remove_group(&pdev->dev.kobj, &gpio_keys_attr_group);
return 0; return 0;
} }
@ -897,7 +886,6 @@ static SIMPLE_DEV_PM_OPS(gpio_keys_pm_ops, gpio_keys_suspend, gpio_keys_resume);
static struct platform_driver gpio_keys_device_driver = { static struct platform_driver gpio_keys_device_driver = {
.probe = gpio_keys_probe, .probe = gpio_keys_probe,
.remove = gpio_keys_remove,
.driver = { .driver = {
.name = "gpio-keys", .name = "gpio-keys",
.pm = &gpio_keys_pm_ops, .pm = &gpio_keys_pm_ops,