#include <linux/input/mt.h>
#include <linux/rmi.h>
#include <linux/sizes.h>
+#include <linux/unaligned.h>
#include "rmi_driver.h"
#include "rmi_2d_sensor.h"
offset = 0;
if (rmi_register_desc_has_subpacket(item, 0)) {
- sensor->max_x = (buf[offset + 1] << 8) | buf[offset];
- sensor->max_y = (buf[offset + 3] << 8) | buf[offset + 2];
+ sensor->max_x = get_unaligned_le16(&buf[offset]);
+ sensor->max_y = get_unaligned_le16(&buf[offset + 2]);
offset += 4;
}
sensor->max_x, sensor->max_y);
if (rmi_register_desc_has_subpacket(item, 1)) {
- pitch_x = (buf[offset + 1] << 8) | buf[offset];
- pitch_y = (buf[offset + 3] << 8) | buf[offset + 2];
+ pitch_x = get_unaligned_le16(&buf[offset]);
+ pitch_y = get_unaligned_le16(&buf[offset + 2]);
offset += 4;
}
break;
}
- obj->x = (data1[2] << 8) | data1[1];
- obj->y = (data1[4] << 8) | data1[3];
+ obj->x = get_unaligned_le16(&data1[1]);
+ obj->y = get_unaligned_le16(&data1[3]);
obj->z = data1[5];
obj->wx = data1[6];
obj->wy = data1[7];