summaryrefslogtreecommitdiff
path: root/drivers/input/evdev.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-05-15 19:26:03 +0400
committerJeff Garzik <jeff@garzik.org>2006-05-15 19:26:03 +0400
commit5006ecc2d5073d4e52f54381fd0fee1575d4ce22 (patch)
treebedfff6f96118771b809de30e559cc370f94c7be /drivers/input/evdev.c
parentacc696d93dcf993dec123d69d599979e1456ffec (diff)
parent9be2f7c38e0bd64e8a0f74ea68df1e73e2ddfcc3 (diff)
downloadlinux-5006ecc2d5073d4e52f54381fd0fee1575d4ce22.tar.xz
Merge branch 'master' into upstream
Diffstat (limited to 'drivers/input/evdev.c')
-rw-r--r--drivers/input/evdev.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index a34e3d91d9ed..ba325f16d077 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -403,6 +403,27 @@ static long evdev_ioctl_handler(struct file *file, unsigned int cmd,
case EVIOCGID:
if (copy_to_user(p, &dev->id, sizeof(struct input_id)))
return -EFAULT;
+ return 0;
+
+ case EVIOCGREP:
+ if (!test_bit(EV_REP, dev->evbit))
+ return -ENOSYS;
+ if (put_user(dev->rep[REP_DELAY], ip))
+ return -EFAULT;
+ if (put_user(dev->rep[REP_PERIOD], ip + 1))
+ return -EFAULT;
+ return 0;
+
+ case EVIOCSREP:
+ if (!test_bit(EV_REP, dev->evbit))
+ return -ENOSYS;
+ if (get_user(u, ip))
+ return -EFAULT;
+ if (get_user(v, ip + 1))
+ return -EFAULT;
+
+ input_event(dev, EV_REP, REP_DELAY, u);
+ input_event(dev, EV_REP, REP_PERIOD, v);
return 0;