diff options
author | Logan Gunthorpe <logang@deltatee.com> | 2017-03-17 21:48:17 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-21 08:44:33 +0300 |
commit | 38923911dcc343f7f6624fc77a4ad63f2528fbcd (patch) | |
tree | f0019da14f35e2c1980ccd7396f28b9daaefd26b /drivers/iio | |
parent | 985087157cebd2e710c3e65d8c3eabde4c591f1c (diff) | |
download | linux-38923911dcc343f7f6624fc77a4ad63f2528fbcd.tar.xz |
iio:core: utilize new cdev_device_add helper function
Replace the open coded registration of the cdev and dev with the
new device_add_cdev() helper. The helper replaces a common pattern by
taking the proper reference against the parent device and adding both
the cdev and the device.
In doing so we have to remove a guard statement from cdev_del,
but this doesn't appear to be required in any way.
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/iio')
-rw-r--r-- | drivers/iio/industrialio-core.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index d18ded45bedd..26a03c6eeb47 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -1720,18 +1720,13 @@ int iio_device_register(struct iio_dev *indio_dev) cdev_init(&indio_dev->chrdev, &iio_buffer_fileops); indio_dev->chrdev.owner = indio_dev->info->driver_module; - indio_dev->chrdev.kobj.parent = &indio_dev->dev.kobj; - ret = cdev_add(&indio_dev->chrdev, indio_dev->dev.devt, 1); - if (ret < 0) - goto error_unreg_eventset; - ret = device_add(&indio_dev->dev); + ret = cdev_device_add(&indio_dev->chrdev, &indio_dev->dev); if (ret < 0) - goto error_cdev_del; + goto error_unreg_eventset; return 0; -error_cdev_del: - cdev_del(&indio_dev->chrdev); + error_unreg_eventset: iio_device_unregister_eventset(indio_dev); error_free_sysfs: @@ -1752,10 +1747,8 @@ void iio_device_unregister(struct iio_dev *indio_dev) { mutex_lock(&indio_dev->info_exist_lock); - device_del(&indio_dev->dev); + cdev_device_del(&indio_dev->chrdev, &indio_dev->dev); - if (indio_dev->chrdev.dev) - cdev_del(&indio_dev->chrdev); iio_device_unregister_debugfs(indio_dev); iio_disable_all_buffers(indio_dev); |