aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/joydev.c
diff options
context:
space:
mode:
authorLogan Gunthorpe <logang@deltatee.com>2017-03-17 14:48:11 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-03-21 01:44:32 -0400
commit358a89ca2c9680ceddc219ab25d1583619e9159f (patch)
treec080239726f49d6341d58163b7e2c5e2b6555b26 /drivers/input/joydev.c
parent92a3fa075d3d2716b9c662814540f1d660cbf2f5 (diff)
input: utilize new cdev_device_add helper function
Replace the open coded registration of the cdev and dev with the new device_add_cdev() helper in evdev, joydev and mousedev. The helper replaces a common pattern by taking the proper reference against the parent device and adding both the cdev and the device. Signed-off-by: Logan Gunthorpe <logang@deltatee.com> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/input/joydev.c')
-rw-r--r--drivers/input/joydev.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c
index 065e67bf56dd..29d677c714d2 100644
--- a/drivers/input/joydev.c
+++ b/drivers/input/joydev.c
@@ -742,8 +742,6 @@ static void joydev_cleanup(struct joydev *joydev)
742 joydev_mark_dead(joydev); 742 joydev_mark_dead(joydev);
743 joydev_hangup(joydev); 743 joydev_hangup(joydev);
744 744
745 cdev_del(&joydev->cdev);
746
747 /* joydev is marked dead so no one else accesses joydev->open */ 745 /* joydev is marked dead so no one else accesses joydev->open */
748 if (joydev->open) 746 if (joydev->open)
749 input_close_device(handle); 747 input_close_device(handle);
@@ -913,12 +911,8 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
913 goto err_free_joydev; 911 goto err_free_joydev;
914 912
915 cdev_init(&joydev->cdev, &joydev_fops); 913 cdev_init(&joydev->cdev, &joydev_fops);
916 joydev->cdev.kobj.parent = &joydev->dev.kobj;
917 error = cdev_add(&joydev->cdev, joydev->dev.devt, 1);
918 if (error)
919 goto err_unregister_handle;
920 914
921 error = device_add(&joydev->dev); 915 error = cdev_device_add(&joydev->cdev, &joydev->dev);
922 if (error) 916 if (error)
923 goto err_cleanup_joydev; 917 goto err_cleanup_joydev;
924 918
@@ -926,7 +920,6 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev,
926 920
927 err_cleanup_joydev: 921 err_cleanup_joydev:
928 joydev_cleanup(joydev); 922 joydev_cleanup(joydev);
929 err_unregister_handle:
930 input_unregister_handle(&joydev->handle); 923 input_unregister_handle(&joydev->handle);
931 err_free_joydev: 924 err_free_joydev:
932 put_device(&joydev->dev); 925 put_device(&joydev->dev);
@@ -939,7 +932,7 @@ static void joydev_disconnect(struct input_handle *handle)
939{ 932{
940 struct joydev *joydev = handle->private; 933 struct joydev *joydev = handle->private;
941 934
942 device_del(&joydev->dev); 935 cdev_device_del(&joydev->cdev, &joydev->dev);
943 joydev_cleanup(joydev); 936 joydev_cleanup(joydev);
944 input_free_minor(MINOR(joydev->dev.devt)); 937 input_free_minor(MINOR(joydev->dev.devt));
945 input_unregister_handle(handle); 938 input_unregister_handle(handle);