aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/joystick
diff options
context:
space:
mode:
authorYalin Wang <yalin.wang2010@gmail.com>2015-08-20 20:41:42 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2015-08-20 20:44:34 -0400
commit012bd2a533cd665c9961c5905f144170b16f61e4 (patch)
tree5cb8b6792bdf45af251d952f5be2bb18a30ec83e /drivers/input/joystick
parent95ecdc2549ccc1f4f5af1f37c080120c2f0a1be3 (diff)
Input: zhenhua - switch to using bitrev8()
Instead of custom zhenhua_bitreverse() let's use generic bitrev8(). Signed-off-by: Yalin Wang <yalin.wang2010@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'drivers/input/joystick')
-rw-r--r--drivers/input/joystick/zhenhua.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/input/joystick/zhenhua.c b/drivers/input/joystick/zhenhua.c
index 30af2e8c670c..4a8258bf13fd 100644
--- a/drivers/input/joystick/zhenhua.c
+++ b/drivers/input/joystick/zhenhua.c
@@ -47,6 +47,7 @@
47#include <linux/kernel.h> 47#include <linux/kernel.h>
48#include <linux/module.h> 48#include <linux/module.h>
49#include <linux/slab.h> 49#include <linux/slab.h>
50#include <linux/bitrev.h>
50#include <linux/input.h> 51#include <linux/input.h>
51#include <linux/serio.h> 52#include <linux/serio.h>
52 53
@@ -72,16 +73,6 @@ struct zhenhua {
72 char phys[32]; 73 char phys[32];
73}; 74};
74 75
75
76/* bits in all incoming bytes needs to be "reversed" */
77static int zhenhua_bitreverse(int x)
78{
79 x = ((x & 0xaa) >> 1) | ((x & 0x55) << 1);
80 x = ((x & 0xcc) >> 2) | ((x & 0x33) << 2);
81 x = ((x & 0xf0) >> 4) | ((x & 0x0f) << 4);
82 return x;
83}
84
85/* 76/*
86 * zhenhua_process_packet() decodes packets the driver receives from the 77 * zhenhua_process_packet() decodes packets the driver receives from the
87 * RC transmitter. It updates the data accordingly. 78 * RC transmitter. It updates the data accordingly.
@@ -120,7 +111,7 @@ static irqreturn_t zhenhua_interrupt(struct serio *serio, unsigned char data, un
120 return IRQ_HANDLED; /* wrong MSB -- ignore this byte */ 111 return IRQ_HANDLED; /* wrong MSB -- ignore this byte */
121 112
122 if (zhenhua->idx < ZHENHUA_MAX_LENGTH) 113 if (zhenhua->idx < ZHENHUA_MAX_LENGTH)
123 zhenhua->data[zhenhua->idx++] = zhenhua_bitreverse(data); 114 zhenhua->data[zhenhua->idx++] = bitrev8(data);
124 115
125 if (zhenhua->idx == ZHENHUA_MAX_LENGTH) { 116 if (zhenhua->idx == ZHENHUA_MAX_LENGTH) {
126 zhenhua_process_packet(zhenhua); 117 zhenhua_process_packet(zhenhua);