summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/rc/lirc_dev.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index f1d8c1ef072e..057983b8ec53 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -193,17 +193,11 @@ int lirc_register_driver(struct lirc_driver *d)
cdev_init(&ir->cdev, d->fops);
ir->cdev.owner = ir->d.owner;
- ir->cdev.kobj.parent = &ir->dev.kobj;
-
- err = cdev_add(&ir->cdev, ir->dev.devt, 1);
- if (err)
- goto out_free_dev;
-
ir->attached = 1;
- err = device_add(&ir->dev);
+ err = cdev_device_add(&ir->cdev, &ir->dev);
if (err)
- goto out_cdev;
+ goto out_dev;
mutex_unlock(&lirc_dev_lock);
@@ -214,9 +208,7 @@ int lirc_register_driver(struct lirc_driver *d)
return 0;
-out_cdev:
- cdev_del(&ir->cdev);
-out_free_dev:
+out_dev:
put_device(&ir->dev);
out_lock:
mutex_unlock(&lirc_dev_lock);
@@ -248,8 +240,7 @@ void lirc_unregister_driver(struct lirc_driver *d)
mutex_unlock(&lirc_dev_lock);
- device_del(&ir->dev);
- cdev_del(&ir->cdev);
+ cdev_device_del(&ir->cdev, &ir->dev);
put_device(&ir->dev);
}
EXPORT_SYMBOL(lirc_unregister_driver);