public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch] tuner update
@ 2004-11-19 16:57 Gerd Knorr
  0 siblings, 0 replies; only message in thread
From: Gerd Knorr @ 2004-11-19 16:57 UTC (permalink / raw)
  To: Andrew Morton, Linux Kernel Mailing List

Update for the tuner module: add support for a new tuner chip.

Signed-off-by: Gerd Knorr <kraxel@bytesex.org>
---
 drivers/media/video/tda9887.c |    1 +
 drivers/media/video/tuner.c   |   16 ++++++++++++----
 include/media/tuner.h         |    1 +
 3 files changed, 14 insertions(+), 4 deletions(-)

diff -u linux-2.6.10/include/media/tuner.h linux/include/media/tuner.h
--- linux-2.6.10/include/media/tuner.h	2004-11-17 18:41:07.000000000 +0100
+++ linux/include/media/tuner.h	2004-11-19 14:51:58.039802902 +0100
@@ -76,6 +76,7 @@
 #define TUNER_TNF_8831BGFF       48
 #define TUNER_MICROTUNE_4042FI5  49	/* FusionHDTV 3 Gold - 4042 FI5 (3X 8147) */
 #define TUNER_TCL_2002N          50
+#define TUNER_PHILIPS_FM1256_IH3   51
 
 #define NOTUNER 0
 #define PAL     1	/* PAL_BG */
diff -u linux-2.6.10/drivers/media/video/tuner.c linux/drivers/media/video/tuner.c
--- linux-2.6.10/drivers/media/video/tuner.c	2004-11-17 18:42:27.000000000 +0100
+++ linux/drivers/media/video/tuner.c	2004-11-19 14:51:58.050800847 +0100
@@ -1,5 +1,5 @@
 /*
- * $Id: tuner.c,v 1.29 2004/11/07 13:17:15 kraxel Exp $
+ * $Id: tuner.c,v 1.31 2004/11/10 11:07:24 kraxel Exp $
  */
 
 #include <linux/module.h>
@@ -262,6 +262,8 @@
 	  16*162.00,16*457.00,0xa2,0x94,0x31,0x8e,732},
         { "TCL 2002N", TCL, NTSC,
           16*172.00,16*448.00,0x01,0x02,0x08,0x8e,732},
+	{ "Philips PAL/SECAM_D (FM 1256 I-H3)", Philips, PAL,
+	  16*160.00,16*442.00,0x01,0x02,0x04,0x8e,623 },
 
 };
 #define TUNERS ARRAY_SIZE(tuners)
@@ -986,14 +988,18 @@
 
 	tun=&tuners[t->type];
 	div = freq + (int)(16*10.7);
-        buffer[0] = (div>>8) & 0x7f;
-        buffer[1] = div      & 0xff;
 	buffer[2] = tun->config;
+
 	switch (t->type) {
 	case TUNER_PHILIPS_FM1216ME_MK3:
 	case TUNER_PHILIPS_FM1236_MK3:
 		buffer[3] = 0x19;
 		break;
+	case TUNER_PHILIPS_FM1256_IH3:
+		div = (20 * freq)/16 + 333 * 2;
+	        buffer[2] = 0x80;
+		buffer[3] = 0x19;
+		break;
 	case TUNER_LG_PAL_FM:
 		buffer[3] = 0xa5;
 		break;
@@ -1001,6 +1007,8 @@
 		buffer[3] = 0xa4;
 		break;
 	}
+        buffer[0] = (div>>8) & 0x7f;
+        buffer[1] = div      & 0xff;
 
 	dprintk("tuner: radio 0x%02x 0x%02x 0x%02x 0x%02x\n",
 		buffer[0],buffer[1],buffer[2],buffer[3]);
@@ -1077,7 +1085,7 @@
 {
 	struct tuner *t = i2c_get_clientdata(c);
 
-	if (t->type != UNSET) {
+	if (t->type != UNSET && t->type != TUNER_ABSENT) {
 		if (t->type != type)
 			printk("tuner: type already set to %d, "
 			       "ignoring request for %d\n", t->type, type);
diff -u linux-2.6.10/drivers/media/video/tda9887.c linux/drivers/media/video/tda9887.c
--- linux-2.6.10/drivers/media/video/tda9887.c	2004-11-17 18:42:19.000000000 +0100
+++ linux/drivers/media/video/tda9887.c	2004-11-19 14:51:58.109789826 +0100
@@ -246,6 +246,7 @@
 	printk(PREFIX "read: 0x%2x\n", buf[0]);
 	printk("  after power on : %s\n", (buf[0] & 0x01) ? "yes" : "no");
 	printk("  afc            : %s\n", afc[(buf[0] >> 1) & 0x0f]);
+	printk("  fmif level     : %s\n", (buf[0] & 0x20) ? "high" : "low");
 	printk("  afc window     : %s\n", (buf[0] & 0x40) ? "in" : "out");
 	printk("  vfi level      : %s\n", (buf[0] & 0x80) ? "high" : "low");
 }

-- 
#define printk(args...) fprintf(stderr, ## args)

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-11-19 17:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-19 16:57 [patch] tuner update Gerd Knorr

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox