summaryrefslogtreecommitdiff
path: root/drivers/media/usb/siano
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2013-03-09 18:34:56 +0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-03-21 14:46:18 +0400
commit80ccb51a0f970ab0935a8be70b677ecbcdf74e3e (patch)
treecd3edecad8522016a7de2545d34468c09dc511ab /drivers/media/usb/siano
parentfe802fd92d6abd1fce2ae8d03a073807d25e9453 (diff)
downloadlinux-80ccb51a0f970ab0935a8be70b677ecbcdf74e3e.tar.xz
[media] siano: simplify message endianness logic
Currently, every time a message is sent or received, the endiannes need to be fixed on big endian machines. This is currently done on every call to the send API, and on every msg reception logic. Instead of doing that, move it to the send/receive functions. That simplifies the logic and avoids the risk of forgetting to fix it somewhere. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/usb/siano')
-rw-r--r--drivers/media/usb/siano/smsusb.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/media/usb/siano/smsusb.c b/drivers/media/usb/siano/smsusb.c
index 751c0d6d98b8..acd3d1e82e03 100644
--- a/drivers/media/usb/siano/smsusb.c
+++ b/drivers/media/usb/siano/smsusb.c
@@ -129,6 +129,8 @@ static void smsusb_onresponse(struct urb *urb)
smscore_translate_msg(phdr->msgType),
phdr->msgType, phdr->msgLength);
+ smsendian_handle_rx_message((struct SmsMsgData_ST *) phdr);
+
smscore_onresponse(dev->coredev, surb->cb);
surb->cb = NULL;
} else {
@@ -207,13 +209,14 @@ static int smsusb_sendrequest(void *context, void *buffer, size_t size)
struct SmsMsgHdr_ST *phdr = (struct SmsMsgHdr_ST *) buffer;
int dummy;
+ if (dev->state != SMSUSB_ACTIVE)
+ return -ENOENT;
+
sms_debug("sending %s(%d) size: %d",
smscore_translate_msg(phdr->msgType), phdr->msgType,
phdr->msgLength);
- if (dev->state != SMSUSB_ACTIVE)
- return -ENOENT;
-
+ smsendian_handle_tx_message((struct SmsMsgData_ST *) phdr);
smsendian_handle_message_header((struct SmsMsgHdr_ST *)buffer);
return usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 2),
buffer, size, &dummy, 1000);