]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/media/cec/cec-core.c
Merge tag 'media/v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[mirror_ubuntu-artful-kernel.git] / drivers / media / cec / cec-core.c
index a21fca7f78832b520259c191ce463920dad414ec..f9ebff90f8ebc08b77088c8f1901d8aa7077b99f 100644 (file)
@@ -137,24 +137,17 @@ static int __must_check cec_devnode_register(struct cec_devnode *devnode,
 
        /* Part 2: Initialize and register the character device */
        cdev_init(&devnode->cdev, &cec_devnode_fops);
-       devnode->cdev.kobj.parent = &devnode->dev.kobj;
        devnode->cdev.owner = owner;
 
-       ret = cdev_add(&devnode->cdev, devnode->dev.devt, 1);
-       if (ret < 0) {
-               pr_err("%s: cdev_add failed\n", __func__);
+       ret = cdev_device_add(&devnode->cdev, &devnode->dev);
+       if (ret) {
+               pr_err("%s: cdev_device_add failed\n", __func__);
                goto clr_bit;
        }
 
-       ret = device_add(&devnode->dev);
-       if (ret)
-               goto cdev_del;
-
        devnode->registered = true;
        return 0;
 
-cdev_del:
-       cdev_del(&devnode->cdev);
 clr_bit:
        mutex_lock(&cec_devnode_lock);
        clear_bit(devnode->minor, cec_devnode_nums);
@@ -190,8 +183,7 @@ static void cec_devnode_unregister(struct cec_devnode *devnode)
        devnode->unregistered = true;
        mutex_unlock(&devnode->lock);
 
-       device_del(&devnode->dev);
-       cdev_del(&devnode->cdev);
+       cdev_device_del(&devnode->cdev, &devnode->dev);
        put_device(&devnode->dev);
 }