From 59dcd9480d93aebdf41e29c46e6a8b4ceeaca75d Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Date: Thu, 23 Jun 2005 22:04:50 -0700
Subject: [PATCH] v4l: PAL-M support fix for CX88 chipsets

This patch fixes PAL-M chroma subcarrier frequency (FSC) to its correct
value of 3.5756115 MHz and adjusts horizontal total samples for PAL-M,
according with formula Line Draw Time / (4*FSC).

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Cc: <video4linux-list@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
---
 drivers/media/video/cx88/cx88-core.c | 9 +++++++++
 1 file changed, 9 insertions(+)

(limited to 'drivers/media/video')

diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c
index 1ff79b5a8835..8c7f5589e92b 100644
--- a/drivers/media/video/cx88/cx88-core.c
+++ b/drivers/media/video/cx88/cx88-core.c
@@ -736,6 +736,10 @@ static unsigned int inline norm_fsc8(struct cx88_tvnorm *norm)
 {
 	static const unsigned int ntsc = 28636360;
 	static const unsigned int pal  = 35468950;
+	static const unsigned int palm  = 28604892;
+
+	if (norm->id & V4L2_STD_PAL_M)
+		return palm;
 
 	return (norm->id & V4L2_STD_625_50) ? pal : ntsc;
 }
@@ -749,6 +753,11 @@ static unsigned int inline norm_notchfilter(struct cx88_tvnorm *norm)
 
 static unsigned int inline norm_htotal(struct cx88_tvnorm *norm)
 {
+	/* Should always be Line Draw Time / (4*FSC) */
+
+	if (norm->id & V4L2_STD_PAL_M)
+		return 909;
+
 	return (norm->id & V4L2_STD_625_50) ? 1135 : 910;
 }
 
-- 
cgit v1.2.2