Skip to contentSkip to conversation

PAL-M support fix for CX88 chipsets

PATCH In review Mauro Carvalho Chehab 2 participants 6 messages May 3, 2005 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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), where Line Draw Time is 63.555 us.
Without this patch, the Notch subcarrier filter was trying to
capture using NTSC-M frequency, which is very close, but not equal. This could result in Black and White or miscolored frames.

-----

drivers/media/video/cx88/cx88-core.c 2005-05-03 09:23:21.000000000 -0300 renamed from drivers/media/video/cx88/cx88-core.c 2005-04-20 21:03:14.000000000 -0300 +0 -0
diff -puNr linux-2.6.12-rc3.org/drivers/media/video/cx88/cx88-core.c linux-2.6.12-rc3/drivers/media/video/cx88/cx88-core.c
@@ -736,6 +736,9 @@ static unsigned int inline norm_fsc8(str
{
       static const unsigned int ntsc = 28636360;
       static const unsigned int pal  = 35468950;

+ static const unsigned int palm = 28604892;
+
+ if (V4L2_STD_PAL_M & norm->id) return palm;

       return (norm->id & V4L2_STD_625_50) ? pal : ntsc;
}

@@ -749,6 +752,8 @@ static unsigned int inline norm_notchfil

static unsigned int inline norm_htotal(struct cx88_tvnorm *norm) {
+ // Should allways be Line Draw Time / 4FSC

+       if (V4L2_STD_PAL_M  & norm->id) return 909;
       return (norm->id & V4L2_STD_625_50) ? 1135 : 910;
}
#1 lore raw

On Tue, 03 May 2005 09:48:24 -0300 Mauro Carvalho Chehab wrote:

|     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), where Line Draw 
| Time is 63.555 us.
|      Without this patch, the Notch subcarrier filter was trying to 
| capture using NTSC-M frequency, which is very close, but not equal. This 
| could result in Black and White or miscolored frames.

This patch does not apply cleanly:
patching file cx88-core.c
Hunk #1 FAILED at 736.
Hunk #2 FAILED at 752.
2 out of 2 hunks FAILED -- saving rejects to file cx88-core.c.rej

due to tabs being converted to spaces.
Please mail it to yourself and then try to apply the patch to see if that works. You may have to use a different mail client/app. Hm, thunderbird. Did you copy/paste the patch? That usually doesn't work.

Oh, and kernel comment style is /* ... */, not //.

| -----
| 
| diff -puNr linux-2.6.12-rc3.org/drivers/media/video/cx88/cx88-core.c 
| linux-2.6.12-rc3/drivers/media/video/cx88/cx88-core.c
| --- linux-2.6.12-rc3.org/drivers/media/video/cx88/cx88-core.c   
| 2005-04-20 21:03:14.000000000 -0300
| +++ linux-2.6.12-rc3/drivers/media/video/cx88/cx88-core.c       
| 2005-05-03 09:23:21.000000000 -0300
| @@ -736,6 +736,9 @@ static unsigned int inline norm_fsc8(str
|  {
|         static const unsigned int ntsc = 28636360;
|         static const unsigned int pal  = 35468950;
| +        static const unsigned int palm  = 28604892;
| +
| +       if (V4L2_STD_PAL_M  & norm->id) return palm;
| 
|         return (norm->id & V4L2_STD_625_50) ? pal : ntsc;
|  }
| @@ -749,6 +752,8 @@ static unsigned int inline norm_notchfil
| 
|  static unsigned int inline norm_htotal(struct cx88_tvnorm *norm)
|  {
| +       // Should allways be Line Draw Time / 4FSC
| +       if (V4L2_STD_PAL_M  & norm->id) return 909;
|         return (norm->id & V4L2_STD_625_50) ? 1135 : 910;
|  }

---
~Randy

#2 lore raw
Quoted 11 lines · Randy.Dunlap

On Tue, 03 May 2005 09:48:24 -0300 Mauro Carvalho Chehab wrote:

|     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), where Line Draw | Time is 63.555 us.
|      Without this patch, the Notch subcarrier filter was trying to | capture using NTSC-M frequency, which is very close, but not equal. This | could result in Black and White or miscolored frames.

This patch does not apply cleanly:
patching file cx88-core.c
Hunk #1 FAILED at 736.
Hunk #2 FAILED at 752.
2 out of 2 hunks FAILED -- saving rejects to file cx88-core.c.rej

Quoted 8 lines

due to tabs being converted to spaces.
Please mail it to yourself and then try to apply the patch to see if that works. You may have to use a different mail client/app. Hm, thunderbird. Did you copy/paste the patch? That usually doesn't work.

That was my case. I normally prefer not to insert as a MIME
attachment. As it was a small patch, I'd used copy/paste method...

Quoted 3 lines

Oh, and kernel comment style is /* ... */, not //.

I've corrected the comments and fixed some typo.

Thank you.

Mauro.

drivers/media/video/cx88/cx88-core.c +5 -0
@@ -736,6 +736,9 @@ static unsigned int inline norm_fsc8(str
 {
 	static const unsigned int ntsc = 28636360;
 	static const unsigned int pal  = 35468950;
+        static const unsigned int palm  = 28604892;
+
+	if (V4L2_STD_PAL_M  & norm->id) return palm;
 
 	return (norm->id & V4L2_STD_625_50) ? pal : ntsc;
 }
@@ -749,6 +752,8 @@ static unsigned int inline norm_notchfil
 
 static unsigned int inline norm_htotal(struct cx88_tvnorm *norm)
 {
+	/* Should always be Line Draw Time / (4*FSC) */
+	if (V4L2_STD_PAL_M  & norm->id) return 909;
 	return (norm->id & V4L2_STD_625_50) ? 1135 : 910;
 }
 
#3 lore raw

On Tue, 03 May 2005 14:43:15 -0300 Mauro Carvalho Chehab wrote:

| >On Tue, 03 May 2005 09:48:24 -0300 Mauro Carvalho Chehab wrote:
| >
| >|     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), where Line Draw 
| >| Time is 63.555 us.
| >|      Without this patch, the Notch subcarrier filter was trying to 
| >| capture using NTSC-M frequency, which is very close, but not equal. This 
| >| could result in Black and White or miscolored frames.

This line:
+ static const unsigned int palm = 28604892;
begins with spaces, not a TAB.

+ if (V4L2_STD_PAL_M & norm->id) return palm;
Please only 1 space after the _M, and put the return on a separate line.

Same comments for the next if/return.

And please clean up the next (final :) version with a clean description and Signed-off-by: line.

---
~Randy

#4 lore raw

Re: [2.6 patch] PAL-M support fix for CX88 chipsets - final version :-)

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).

drivers/media/video/cx88/cx88-core.c +9 -0
@@ -736,6 +736,10 @@ static unsigned int inline norm_fsc8(str
 {
 	static const unsigned int ntsc = 28636360;
 	static const unsigned int pal  = 35468950;
+	static const unsigned int palm  = 28604892;
+
+	if (V4L2_STD_PAL_M & norm->id)
+		return palm;
 
 	return (norm->id & V4L2_STD_625_50) ? pal : ntsc;
 }
@@ -749,6 +753,11 @@ static unsigned int inline norm_notchfil
 
 static unsigned int inline norm_htotal(struct cx88_tvnorm *norm)
 {
+	/* Should always be Line Draw Time / (4*FSC) */
+
+	if (V4L2_STD_PAL_M  & norm->id)
+		return 909;
+
 	return (norm->id & V4L2_STD_625_50) ? 1135 : 910;
 }
 
#5 lore raw

Re: [2.6 patch] PAL-M support fix for CX88 chipsets - final version :-)

On Tue, 03 May 2005 15:04:35 -0300 Mauro Carvalho Chehab wrote:

| 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 <[email protected]>

+ if (V4L2_STD_PAL_M & norm->id)
still has 2 spaces after _M, but it's not a big deal.

Now who will merge it?

Thanks.
---
~Randy