[media] r820t: Invert bits for read ops
authorMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 10 Apr 2013 10:08:17 +0000 (07:08 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 17 Apr 2013 00:27:38 +0000 (21:27 -0300)
On read, the bit order is inverted.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Tested-by: Antti Palosaari <crope@iki.fi>
drivers/media/tuners/r820t.c

index 48ff6bb75f81e2d2deaa5b257a1a9d1eec88c193..79ab2b74bd5264739954880bb900dd001073d13f 100644 (file)
 #include <linux/videodev2.h>
 #include <linux/mutex.h>
 #include <linux/slab.h>
-#include "tuner-i2c.h"
+#include <linux/bitrev.h>
 #include <asm/div64.h>
+
+#include "tuner-i2c.h"
 #include "r820t.h"
 
 /*
@@ -414,7 +416,7 @@ static int r820t_write_reg_mask(struct r820t_priv *priv, u8 reg, u8 val,
 
 static int r820_read(struct r820t_priv *priv, u8 reg, u8 *val, int len)
 {
-       int rc;
+       int rc, i;
        u8 *p = &priv->buf[1];
 
        priv->buf[0] = reg;
@@ -431,7 +433,8 @@ static int r820_read(struct r820t_priv *priv, u8 reg, u8 *val, int len)
                  __func__, reg, len, len, p);
 
        /* Copy data to the output buffer */
-       memcpy(val, p, len);
+       for (i = 0; i < len; i++)
+               val[i] = bitrev8(p[i]);
 
        return 0;
 }