diff options
author | Daniel Mack <daniel@caiaq.de> | 2010-08-02 20:15:17 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2010-08-02 20:29:56 -0700 |
commit | 987a6c0298260b7aa40702b349282554d6180e4b (patch) | |
tree | 29d0873435221a6d731267efc2412814440e4a28 /drivers/input/joydev.c | |
parent | 7957e9c4d175cc065f4277211fcb7d784fcee860 (diff) | |
download | linux-987a6c0298260b7aa40702b349282554d6180e4b.tar.bz2 |
Input: switch to input_abs_*() access functions
Change all call sites in drivers/input to not access the ABS axis
information directly anymore. Make them use the access helpers instead.
Also use input_set_abs_params() when possible.
Did some code refactoring as I was on it.
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/joydev.c')
-rw-r--r-- | drivers/input/joydev.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 63834585c283..d85bd8a7967d 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c @@ -530,7 +530,7 @@ static int joydev_ioctl_common(struct joydev *joydev, { struct input_dev *dev = joydev->handle.dev; size_t len; - int i, j; + int i; const char *name; /* Process fixed-sized commands. */ @@ -562,12 +562,11 @@ static int joydev_ioctl_common(struct joydev *joydev, case JSIOCSCORR: if (copy_from_user(joydev->corr, argp, sizeof(joydev->corr[0]) * joydev->nabs)) - return -EFAULT; + return -EFAULT; for (i = 0; i < joydev->nabs; i++) { - j = joydev->abspam[i]; - joydev->abs[i] = joydev_correct(dev->abs[j], - &joydev->corr[i]); + int val = input_abs_get_val(dev, joydev->abspam[i]); + joydev->abs[i] = joydev_correct(val, &joydev->corr[i]); } return 0; @@ -848,25 +847,27 @@ static int joydev_connect(struct input_handler *handler, struct input_dev *dev, for (i = 0; i < joydev->nabs; i++) { j = joydev->abspam[i]; - if (dev->absmax[j] == dev->absmin[j]) { + if (input_abs_get_max(dev, j) == input_abs_get_min(dev, j)) { joydev->corr[i].type = JS_CORR_NONE; - joydev->abs[i] = dev->abs[j]; + joydev->abs[i] = input_abs_get_val(dev, j); continue; } joydev->corr[i].type = JS_CORR_BROKEN; - joydev->corr[i].prec = dev->absfuzz[j]; - joydev->corr[i].coef[0] = - (dev->absmax[j] + dev->absmin[j]) / 2 - dev->absflat[j]; - joydev->corr[i].coef[1] = - (dev->absmax[j] + dev->absmin[j]) / 2 + dev->absflat[j]; + joydev->corr[i].prec = input_abs_get_fuzz(dev, j); + + t = (input_abs_get_max(dev, j) + input_abs_get_min(dev, j)) / 2; + joydev->corr[i].coef[0] = t - input_abs_get_flat(dev, j); + joydev->corr[i].coef[1] = t + input_abs_get_flat(dev, j); - t = (dev->absmax[j] - dev->absmin[j]) / 2 - 2 * dev->absflat[j]; + t = (input_abs_get_max(dev, j) - input_abs_get_min(dev, j)) / 2 + - 2 * input_abs_get_flat(dev, j); if (t) { joydev->corr[i].coef[2] = (1 << 29) / t; joydev->corr[i].coef[3] = (1 << 29) / t; - joydev->abs[i] = joydev_correct(dev->abs[j], - joydev->corr + i); + joydev->abs[i] = + joydev_correct(input_abs_get_val(dev, j), + joydev->corr + i); } } |