|
22 | 22 | #include <linux/property.h> |
23 | 23 | #include <linux/regulator/consumer.h> |
24 | 24 | #include <linux/slab.h> |
| 25 | +#include <asm/unaligned.h> |
25 | 26 |
|
26 | 27 | #define WAIT_TIMEOUT msecs_to_jiffies(1000) |
27 | 28 |
|
@@ -327,10 +328,8 @@ static int zforce_touch_event(struct zforce_ts *ts, u8 *payload) |
327 | 328 | } |
328 | 329 |
|
329 | 330 | for (i = 0; i < count; i++) { |
330 | | - point.coord_x = |
331 | | - payload[9 * i + 2] << 8 | payload[9 * i + 1]; |
332 | | - point.coord_y = |
333 | | - payload[9 * i + 4] << 8 | payload[9 * i + 3]; |
| 331 | + point.coord_x = get_unaligned_le16(&payload[9 * i + 1]); |
| 332 | + point.coord_y = get_unaligned_le16(&payload[9 * i + 3]); |
334 | 333 |
|
335 | 334 | if (point.coord_x > ts->prop.max_x || |
336 | 335 | point.coord_y > ts->prop.max_y) { |
@@ -521,14 +520,15 @@ static irqreturn_t zforce_irq_thread(int irq, void *dev_id) |
521 | 520 | * Version Payload Results |
522 | 521 | * [2:major] [2:minor] [2:build] [2:rev] |
523 | 522 | */ |
524 | | - ts->version_major = (payload[RESPONSE_DATA + 1] << 8) | |
525 | | - payload[RESPONSE_DATA]; |
526 | | - ts->version_minor = (payload[RESPONSE_DATA + 3] << 8) | |
527 | | - payload[RESPONSE_DATA + 2]; |
528 | | - ts->version_build = (payload[RESPONSE_DATA + 5] << 8) | |
529 | | - payload[RESPONSE_DATA + 4]; |
530 | | - ts->version_rev = (payload[RESPONSE_DATA + 7] << 8) | |
531 | | - payload[RESPONSE_DATA + 6]; |
| 523 | + ts->version_major = |
| 524 | + get_unaligned_le16(&payload[RESPONSE_DATA]); |
| 525 | + ts->version_minor = |
| 526 | + get_unaligned_le16(&payload[RESPONSE_DATA + 2]); |
| 527 | + ts->version_build = |
| 528 | + get_unaligned_le16(&payload[RESPONSE_DATA + 4]); |
| 529 | + ts->version_rev = |
| 530 | + get_unaligned_le16(&payload[RESPONSE_DATA + 6]); |
| 531 | + |
532 | 532 | dev_dbg(&ts->client->dev, |
533 | 533 | "Firmware Version %04x:%04x %04x:%04x\n", |
534 | 534 | ts->version_major, ts->version_minor, |
|
0 commit comments