Patch "HID: cp2112: fix byte order in SMBUS operations" has been added to the 4.2-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
HID: cp2112: fix byte order in SMBUS operations
to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
hid-cp2112-fix-byte-order-in-smbus-operations.patch
and it can be found in the queue-4.2 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
29e2d6d1f6f61ba2b5cc9d9867e01d8c31a6c4f7Mon Sep 17 00:00:00 2001
From: Ellen Wang <[email protected]>
Date: Thu, 9 Jul 2015 22:04:31 -0700
Subject: HID: cp2112: fix byte order in SMBUS operations
From: Ellen Wang <[email protected]>
commit 29e2d6d1f6f61ba2b5cc9d9867e01d8c31a6c4f7 upstream.
Change all occurrences of be16 to le16 in cp2112_xfer(), because SMBUS words are little endian, not big endian.
--- drivers/hid/hid-cp2112.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/hid/hid-cp2112.c +4 -4
@@ -537,7 +537,7 @@ static int cp2112_xfer(struct i2c_adaptestruct cp2112_device *dev = (struct cp2112_device *)adap->algo_data;struct hid_device *hdev = dev->hdev;u8 buf[64 ]; -__be16 word; +__le16 word;ssize_t count;size_t read_length =0 ;unsigned int retries;
@@ -569,7 +569,7 @@ static int cp2112_xfer(struct i2c_adaptebreak ;case I2C_SMBUS_WORD_DATA : read_length =2 ; - word =cpu_to_be16 (data->word); + word =cpu_to_le16 (data->word);if (I2C_SMBUS_READ == read_write) count = cp2112_write_read_req(buf, addr, read_length,
@@ -582,7 +582,7 @@ static int cp2112_xfer(struct i2c_adapte size =I2C_SMBUS_WORD_DATA ; read_write =I2C_SMBUS_READ ; read_length =2 ; - word =cpu_to_be16 (data->word); + word =cpu_to_le16 (data->word); count =cp2112_write_read_req (buf, addr, read_length, command, (u8 *)&word,2 );
@@ -675,7 +675,7 @@ static int cp2112_xfer(struct i2c_adapte data->byte = buf[0 ];break ;case I2C_SMBUS_WORD_DATA : - data->word =be16_to_cpup ((__be16 *)buf); + data->word =le16_to_cpup ((__le16 *)buf);break ;case I2C_SMBUS_BLOCK_DATA :if (read_length >I2C_SMBUS_BLOCK_MAX ) {
Patches currently in stable-queue which might be from [email protected] are
queue-4.2/hid-cp2112-fix-byte-order-in-smbus-operations.patch queue-4.2/hid-cp2112-fix-i2c_smbus_byte-write.patch