From 2593cd1189a2a38a17c97abcd847f28f8a4617be Mon Sep 17 00:00:00 2001 From: Dmitry Torokhov Date: Fri, 24 Mar 2017 12:34:20 -0700 Subject: [PATCH] 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 --- drivers/input/rmi4/rmi_smbus.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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; -- 2.20.1