]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/media/video/zr364xx.c
V4L/DVB (5392): Zr364xx: Use kernel's byte-swapping function
[mv-sheeva.git] / drivers / media / video / zr364xx.c
index 16bb3576b6ea7724103ca757fb3e38d95ba10c15..b5d3364c94c73144077206b532b4fddef41e0bb6 100644 (file)
@@ -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) {