summaryrefslogtreecommitdiff
path: root/drivers/staging/typec
diff options
context:
space:
mode:
authorFrans Klaver <fransklaver@gmail.com>2017-06-16 19:45:56 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-06-23 18:47:59 +0200
commitb9e8caa7a67535fc544c2504fae3e71a02cfb01a (patch)
tree4d0a87c4aa415bb94bfaf804d46277e24dbdf22e /drivers/staging/typec
parent1877e4ba2d0890244284eea101681b6f990aa2be (diff)
staging: fusb302: don't bitshift __le16 type
The header field in struct pd_message is declared as an __le16 type. The data in the message is supposed to be little endian. This means we don't have to go and shift the individual bytes into position when we're filling the buffer, we can just copy the contents right away. As an added benefit we don't get fishy results on big endian systems anymore. Signed-off-by: Frans Klaver <fransklaver@gmail.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/typec')
-rw-r--r--drivers/staging/typec/fusb302/fusb302.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/staging/typec/fusb302/fusb302.c b/drivers/staging/typec/fusb302/fusb302.c
index 4a356e509fe4..03a3809d18f0 100644
--- a/drivers/staging/typec/fusb302/fusb302.c
+++ b/drivers/staging/typec/fusb302/fusb302.c
@@ -1039,8 +1039,8 @@ static int fusb302_pd_send_message(struct fusb302_chip *chip,
}
/* packsym tells the FUSB302 chip that the next X bytes are payload */
buf[pos++] = FUSB302_TKN_PACKSYM | (len & 0x1F);
- buf[pos++] = msg->header & 0xFF;
- buf[pos++] = (msg->header >> 8) & 0xFF;
+ memcpy(&buf[pos], &msg->header, sizeof(msg->header));
+ pos += sizeof(msg->header);
len -= 2;
memcpy(&buf[pos], msg->payload, len);