V4L/DVB: cx231xx: Colibri carrier offset was wrong for PAL/M

2010-10-09 Thread Mauro Carvalho Chehab
cx231xx: Colibri carrier offset was wrong for PAL/M

The carrier offset check at cx231xx is incomplete. I got here one concrete case
where it is broken: if PAL/M is used (and this is the default for Pixelview 
SBTVD),
the routine will return zero, and the device will be programmed incorrectly,
producing a bad image. A workaround were to change to NTSC and back to PAL/M,
but the better is to just fix the code ;)

PS.: The checks there for other video standards are incomplete. the proper
solution is to fix the routine in a way that it will always return the proper
value for any valid V4L2_STD.

Cc: sta...@kernel.org
Signed-off-by: Mauro Carvalho Chehab mche...@redhat.com

diff --git a/drivers/media/video/cx231xx/cx231xx-avcore.c 
b/drivers/media/video/cx231xx/cx231xx-avcore.c
index 0903773..d52955c 100644
--- a/drivers/media/video/cx231xx/cx231xx-avcore.c
+++ b/drivers/media/video/cx231xx/cx231xx-avcore.c
@@ -1540,7 +1540,7 @@ u32 cx231xx_Get_Colibri_CarrierOffset(u32 mode, u32 
standerd)
 
if (mode == TUNER_MODE_FM_RADIO) {
colibri_carrier_offset = 110;
-   } else if (standerd  (V4L2_STD_NTSC | V4L2_STD_NTSC_M_JP)) {
+   } else if (standerd  (V4L2_STD_MN | V4L2_STD_NTSC_M_JP)) {
colibri_carrier_offset = 4832000;  /*4.83MHz*/
} else if (standerd  (V4L2_STD_PAL_B | V4L2_STD_PAL_G)) {
colibri_carrier_offset = 270;  /*2.70MHz   */
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: V4L/DVB: cx231xx: Colibri carrier offset was wrong for PAL/M

2010-10-09 Thread Devin Heitmueller
On Sat, Oct 9, 2010 at 11:23 AM, Mauro Carvalho Chehab
mche...@redhat.com wrote:
 cx231xx: Colibri carrier offset was wrong for PAL/M

 The carrier offset check at cx231xx is incomplete. I got here one concrete 
 case
 where it is broken: if PAL/M is used (and this is the default for Pixelview 
 SBTVD),
 the routine will return zero, and the device will be programmed incorrectly,
 producing a bad image. A workaround were to change to NTSC and back to PAL/M,
 but the better is to just fix the code ;)

Thanks for spotting this.  I've been focusing entirely on NTSC, so any
such fixes for other standards are very welcome.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html