lkml.org 
[lkml]   [2015]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.1 075/102] HID: cp2112: fix byte order in SMBUS operations
    Date
    4.1-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Ellen Wang <ellen@cumulusnetworks.com>

    commit 29e2d6d1f6f61ba2b5cc9d9867e01d8c31a6c4f7 upstream.

    Change all occurrences of be16 to le16 in cp2112_xfer(),
    because SMBUS words are little endian, not big endian.

    Signed-off-by: Ellen Wang <ellen@cumulusnetworks.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/hid/hid-cp2112.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/hid/hid-cp2112.c
    +++ b/drivers/hid/hid-cp2112.c
    @@ -537,7 +537,7 @@ static int cp2112_xfer(struct i2c_adapte
    struct 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_adapte
    break;
    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) {



    \
     
     \ /
      Last update: 2015-09-19 20:41    [W:4.060 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site