aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--drivers/input/evdev.c11
-rw-r--r--drivers/input/joydev.c11
-rw-r--r--drivers/input/mousedev.c11
3 files changed, 6 insertions, 27 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index e9ae3d500a55..925571475005 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -1354,8 +1354,6 @@ static void evdev_cleanup(struct evdev *evdev)
1354 evdev_mark_dead(evdev); 1354 evdev_mark_dead(evdev);
1355 evdev_hangup(evdev); 1355 evdev_hangup(evdev);
1356 1356
1357 cdev_del(&evdev->cdev);
1358
1359 /* evdev is marked dead so no one else accesses evdev->open */ 1357 /* evdev is marked dead so no one else accesses evdev->open */
1360 if (evdev->open) { 1358 if (evdev->open) {
1361 input_flush_device(handle, NULL); 1359 input_flush_device(handle, NULL);
@@ -1416,12 +1414,8 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev,
1416 goto err_free_evdev; 1414 goto err_free_evdev;
1417 1415
1418 cdev_init(&evdev->cdev, &evdev_fops); 1416 cdev_init(&evdev->cdev, &evdev_fops);
1419 evdev->cdev.kobj.parent = &evdev->dev.kobj;
1420 error = cdev_add(&evdev->cdev, evdev->dev.devt, 1);
1421 if (error)
1422 goto err_unregister_handle;
1423 1417
1424 error = device_add(&evdev->dev); 1418 error = cdev_device_add(&evdev->cdev, &evdev->dev);
1425 if (error) 1419 if (error)
1426 goto err_cleanup_evdev; 1420 goto err_cleanup_evdev;
1427 1421
@@ -1429,7 +1423,6 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev,
1429 1423
1430 err_cleanup_evdev: 1424 err_cleanup_evdev:
1431 evdev_cleanup(evdev); 1425 evdev_cleanup(evdev);
1432 err_unregister_handle:
1433 input_unregister_handle(&evdev->handle); 1426 input_unregister_handle(&evdev->handle);
1434 err_free_evdev: 1427 err_free_evdev:
1435 put_device(&evdev->dev); 1428 put_device(&evdev->dev);
@@ -1442,7 +1435,7 @@ static void evdev_disconnect(struct input_handle *handle)
1442{ 1435{
1443 struct evdev *evdev = handle->private; 1436 struct evdev *evdev = handle->private;
1444 1437
1445 device_del(&evdev->dev); 1438 cdev_device_del(&evdev->cdev, &evdev->dev);
1446 evdev_cleanup(evdev); 1439 evdev_cleanup(evdev);
1447 input_free_minor(MINOR(evdev->dev.devt)); 1440 input_free_minor(MINOR(evdev->dev.devt));
1448 input_unregister_handle(handle); 1441 input_unregister_handle(handle);
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);
diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
index b604564dec5c..0e0ff84088fd 100644
--- a/drivers/input/mousedev.c
+++ b/drivers/input/mousedev.c
@@ -812,8 +812,6 @@ static void mousedev_cleanup(struct mousedev *mousedev)
812 mousedev_mark_dead(mousedev); 812 mousedev_mark_dead(mousedev);
813 mousedev_hangup(mousedev); 813 mousedev_hangup(mousedev);
814 814
815 cdev_del(&mousedev->cdev);
816
817 /* mousedev is marked dead so no one else accesses mousedev->open */ 815 /* mousedev is marked dead so no one else accesses mousedev->open */
818 if (mousedev->open) 816 if (mousedev->open)
819 input_close_device(handle); 817 input_close_device(handle);
@@ -901,12 +899,8 @@ static struct mousedev *mousedev_create(struct input_dev *dev,
901 } 899 }
902 900
903 cdev_init(&mousedev->cdev, &mousedev_fops); 901 cdev_init(&mousedev->cdev, &mousedev_fops);
904 mousedev->cdev.kobj.parent = &mousedev->dev.kobj;
905 error = cdev_add(&mousedev->cdev, mousedev->dev.devt, 1);
906 if (error)
907 goto err_unregister_handle;
908 902
909 error = device_add(&mousedev->dev); 903 error = cdev_device_add(&mousedev->cdev, &mousedev->dev);
910 if (error) 904 if (error)
911 goto err_cleanup_mousedev; 905 goto err_cleanup_mousedev;
912 906
@@ -914,7 +908,6 @@ static struct mousedev *mousedev_create(struct input_dev *dev,
914 908
915 err_cleanup_mousedev: 909 err_cleanup_mousedev:
916 mousedev_cleanup(mousedev); 910 mousedev_cleanup(mousedev);
917 err_unregister_handle:
918 if (!mixdev) 911 if (!mixdev)
919 input_unregister_handle(&mousedev->handle); 912 input_unregister_handle(&mousedev->handle);
920 err_free_mousedev: 913 err_free_mousedev:
@@ -927,7 +920,7 @@ static struct mousedev *mousedev_create(struct input_dev *dev,
927 920
928static void mousedev_destroy(struct mousedev *mousedev) 921static void mousedev_destroy(struct mousedev *mousedev)
929{ 922{
930 device_del(&mousedev->dev); 923 cdev_device_del(&mousedev->cdev, &mousedev->dev);
931 mousedev_cleanup(mousedev); 924 mousedev_cleanup(mousedev);
932 input_free_minor(MINOR(mousedev->dev.devt)); 925 input_free_minor(MINOR(mousedev->dev.devt));
933 if (mousedev != mousedev_mix) 926 if (mousedev != mousedev_mix)