From: Antti Palosaari Date: Sun, 11 Aug 2013 22:07:02 +0000 (-0300) Subject: [media] msi3101: change stream format 384 X-Git-Tag: firefly_0821_release~176^2~3573^2~1415 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0046079812cfcf6c725e067edb683e472d388552;p=firefly-linux-kernel-4.4.55.git [media] msi3101: change stream format 384 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 Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/staging/media/msi3101/sdr-msi3101.c b/drivers/staging/media/msi3101/sdr-msi3101.c index bf735f9b5db9..839e601bd7c4 100644 --- a/drivers/staging/media/msi3101/sdr-msi3101.c +++ b/drivers/staging/media/msi3101/sdr-msi3101.c @@ -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;