Browse Source

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>
Trent Piepho 18 years ago
parent
commit
93566ad806
1 changed files with 6 additions and 7 deletions
  1. 6 7
      drivers/media/video/zr364xx.c

+ 6 - 7
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) {