summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrent Piepho <xyzzy@speakeasy.org>2007-03-08 00:19:49 +0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 22:44:19 +0400
commit93566ad8068a968c3e72951b4539eb9da661446d (patch)
treea326288f20ee3815f50c1e590c3f149a5dc83cbb
parentcf3c34c87f921c5c63d47285c9860345cdaf5170 (diff)
downloadlinux-93566ad8068a968c3e72951b4539eb9da661446d.tar.xz
V4L/DVB (5392): Zr364xx: Use kernel's byte-swapping function
Some code to swap bytes wasn't using the swab16() function that the kernel provides for this. Make use of it, which results in more efficient code. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Antoine Jacquet <royale@zerezo.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/zr364xx.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c
index 16bb3576b6ea..b5d3364c94c7 100644
--- a/drivers/media/video/zr364xx.c
+++ b/drivers/media/video/zr364xx.c
@@ -277,7 +277,7 @@ static unsigned char header3;
static int read_frame(struct zr364xx_camera *cam, int framenum)
{
int i, n, temp, head, size, actual_length;
- unsigned char *ptr = NULL, *jpeg, swap;
+ unsigned char *ptr = NULL, *jpeg;
redo:
/* hardware brightness */
@@ -308,12 +308,11 @@ static int read_frame(struct zr364xx_camera *cam, int framenum)
}
/* swap bytes if camera needs it */
- if (cam->method == METHOD0)
- for (i = 0; i < BUFFER_SIZE; i += 2) {
- swap = cam->buffer[i];
- cam->buffer[i] = cam->buffer[i + 1];
- cam->buffer[i + 1] = swap;
- }
+ if (cam->method == METHOD0) {
+ u16 *buf = (u16*)cam->buffer;
+ for (i = 0; i < BUFFER_SIZE/2; i++)
+ swab16s(buf + i);
+ }
/* write the JPEG header */
if (!head) {