All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.