Input: eeti_ts - use get_unaligned_be16() to retrieve data
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 21 Feb 2017 05:50:13 +0000 (21:50 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 3 Apr 2017 23:24:31 +0000 (16:24 -0700)
Instead of manually converting big endian data on wire into host
endianness, let's use helpers to do that for us. It might save us
a few cycles if host endianness matches what's on wire.

Reviewed-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/eeti_ts.c

index 26b52496748a9f2dbdcf69d5acf2ae64915e19a1..0e4b19236d68674539bf7b126a84935cb878d3ee 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/gpio.h>
 #include <linux/input/eeti_ts.h>
 #include <linux/slab.h>
+#include <asm/unaligned.h>
 
 static bool flip_x;
 module_param(flip_x, bool, 0644);
@@ -89,8 +90,9 @@ static void eeti_ts_read(struct work_struct *work)
 
        pressed = buf[0] & REPORT_BIT_PRESSED;
        res = REPORT_RES_BITS(buf[0] & (REPORT_BIT_AD0 | REPORT_BIT_AD1));
-       x = buf[2] | (buf[1] << 8);
-       y = buf[4] | (buf[3] << 8);
+
+       x = get_unaligned_be16(&buf[1]);
+       y = get_unaligned_be16(&buf[3]);
 
        /* fix the range to 11 bits */
        x >>= res - EETI_TS_BITDEPTH;