From: Dmitry Torokhov Date: Fri, 24 Mar 2017 19:34:20 +0000 (-0700) Subject: Input: synaptics-rmi4 - fix endianness issue in SMBus transport X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=2593cd1189a2a38a17c97abcd847f28f8a4617be;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git Input: synaptics-rmi4 - fix endianness issue in SMBus transport The mapping table holds address in LE form, so we should convert it to CPU when comparing it. Reviewed-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov --- diff --git a/drivers/input/rmi4/rmi_smbus.c b/drivers/input/rmi4/rmi_smbus.c index 76752555d809..6bb67baa1b77 100644 --- a/drivers/input/rmi4/rmi_smbus.c +++ b/drivers/input/rmi4/rmi_smbus.c @@ -89,17 +89,17 @@ static int rmi_smb_get_command_code(struct rmi_transport_dev *xport, mutex_lock(&rmi_smb->mappingtable_mutex); for (i = 0; i < RMI_SMB2_MAP_SIZE; i++) { - if (rmi_smb->mapping_table[i].rmiaddr == rmiaddr) { + struct mapping_table_entry *entry = &rmi_smb->mapping_table[i]; + + if (le16_to_cpu(entry->rmiaddr) == rmiaddr) { if (isread) { - if (rmi_smb->mapping_table[i].readcount - == bytecount) { + if (entry->readcount == bytecount) { *commandcode = i; retval = 0; goto exit; } } else { - if (rmi_smb->mapping_table[i].flags & - RMI_SMB2_MAP_FLAGS_WE) { + if (entry->flags & RMI_SMB2_MAP_FLAGS_WE) { *commandcode = i; retval = 0; goto exit;