[media] msi3101: change stream format 384
authorAntti Palosaari <crope@iki.fi>
Sun, 11 Aug 2013 22:07:02 +0000 (19:07 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Tue, 20 Aug 2013 19:08:47 +0000 (16:08 -0300)
After feeding different signal levels using RF generator and looking
GNU Radio FFT sink I made decision to change bit shift 3 to bit shift
2 as there was very (too) huge visible leap in FFT sink GUI. Now it
looks more natural.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/staging/media/msi3101/sdr-msi3101.c

index bf735f9..839e601 100644 (file)
@@ -589,7 +589,7 @@ static int msi3101_convert_stream_504(struct msi3101_state *s, u32 *dst,
 }
 
 /*
- * Converts signed ~10+3-bit integer into 32-bit IEEE floating point
+ * Converts signed ~10+2-bit integer into 32-bit IEEE floating point
  * representation.
  */
 static u32 msi3101_convert_sample_384(struct msi3101_state *s, u16 x, int shift)
@@ -601,12 +601,15 @@ static u32 msi3101_convert_sample_384(struct msi3101_state *s, u16 x, int shift)
        if (!x)
                return 0;
 
-       /* Convert 10-bit two's complement to 13-bit */
+       if (shift == 3)
+               shift = 2;
+
+       /* Convert 10-bit two's complement to 12-bit */
        if (x & (1 << 9)) {
                x |= ~0U << 10; /* set all the rest bits to one */
                x <<= shift;
                x = -x;
-               x &= 0xfff; /* result is 12 bit ... + sign */
+               x &= 0x7ff; /* result is 11 bit ... + sign */
                sign = 1 << 31;
        } else {
                x <<= shift;