* [patch] tv tuner driver update
@ 2002-10-31 16:31 Gerd Knorr
0 siblings, 0 replies; only message in thread
From: Gerd Knorr @ 2002-10-31 16:31 UTC (permalink / raw)
To: Linus Torvalds, Kernel List, video4linux list
Hi,
This is a update for the tv tuner module. It makes the descriptions
more verbose and also has some minor bugfixes + cleanups.
Gerd
--- linux-2.5.45/drivers/media/video/tuner.c 2002-10-31 14:04:49.000000000 +0100
+++ linux/drivers/media/video/tuner.c 2002-10-31 14:20:28.000000000 +0100
@@ -101,10 +101,16 @@
/* system switching for Philips FI1216MF MK2
from datasheet "1996 Jul 09",
+ standard BG L L'
+ picture carrier 38.90 38.90 33.95
+ colour 34.47 34.37 38.38
+ sound 1 33.40 32.40 40.45
+ sound 2 33.16 - -
+ NICAM 33.05 33.05 39.80
*/
#define PHILIPS_MF_SET_BG 0x01 /* Bit 2 must be zero, Bit 3 is system output */
-#define PHILIPS_MF_SET_PAL_L 0x03
-#define PHILIPS_MF_SET_PAL_L2 0x02
+#define PHILIPS_MF_SET_PAL_L 0x03 // France
+#define PHILIPS_MF_SET_PAL_L2 0x02 // L'
/* ---------------------------------------------------------------------- */
@@ -121,7 +127,9 @@
unsigned char VHF_H;
unsigned char UHF;
unsigned char config;
- unsigned short IFPCoff; /* 622.4=16*38.90 MHz PAL, 732=16*45.75 NTSC */
+ unsigned short IFPCoff; /* 622.4=16*38.90 MHz PAL,
+ 732 =16*45.75 NTSCi,
+ 940 =58.75 NTSC-Japan */
};
/*
@@ -132,16 +140,16 @@
static struct tunertype tuners[] = {
{ "Temic PAL (4002 FH5)", TEMIC, PAL,
16*140.25,16*463.25,0x02,0x04,0x01,0x8e,623},
- { "Philips PAL_I", Philips, PAL_I,
+ { "Philips PAL_I (FI1246 and compatibles)", Philips, PAL_I,
16*140.25,16*463.25,0xa0,0x90,0x30,0x8e,623},
- { "Philips NTSC", Philips, NTSC,
+ { "Philips NTSC (FI1236 and compatibles)", Philips, NTSC,
16*157.25,16*451.25,0xA0,0x90,0x30,0x8e,732},
- { "Philips SECAM", Philips, SECAM,
+ { "Philips (SECAM+PAL_BG) (FI1216MF, FM1216MF, FR1216MF)", Philips, SECAM,
16*168.25,16*447.25,0xA7,0x97,0x37,0x8e,623},
{ "NoTuner", NoTuner, NOTUNER,
0,0,0x00,0x00,0x00,0x00,0x00},
- { "Philips PAL", Philips, PAL,
+ { "Philips PAL_BG (FI1216 and compatibles)", Philips, PAL,
16*168.25,16*447.25,0xA0,0x90,0x30,0x8e,623},
{ "Temic NTSC (4032 FY5)", TEMIC, NTSC,
16*157.25,16*463.25,0x02,0x04,0x01,0x8e,732},
@@ -181,7 +189,7 @@
16*158.00, 16*453.00, 0xa0,0x90,0x30,0x8e,732},
{ "Temic PAL/SECAM multi (4046 FM5)", TEMIC, PAL,
16*169.00, 16*454.00, 0xa0,0x90,0x30,0x8e,623},
- { "Philips PAL_DK", Philips, PAL,
+ { "Philips PAL_DK (FI1256 and compatibles)", Philips, PAL,
16*170.00,16*450.00,0xa0,0x90,0x30,0x8e,623},
{ "Philips PAL/SECAM multi (FQ1216ME)", Philips, PAL,
@@ -200,7 +208,7 @@
{ "Temic PAL* auto + FM (4009 FN5)", TEMIC, PAL,
16*141.00, 16*464.00, 0xa0,0x90,0x30,0x8e,623},
{ "SHARP NTSC_JP (2U5JF5540)", SHARP, NTSC, /* 940=16*58.75 NTSC@Japan */
- 16*137.25,16*317.25,0x01,0x02,0x08,0x8e,940},
+ 16*137.25,16*317.25,0x01,0x02,0x08,0x8e,732 }, // Corrected to NTSC=732 (was:940)
{ "Samsung PAL TCPM9091PD27", Samsung, PAL, /* from sourceforge v3tv */
16*169,16*464,0xA0,0x90,0x30,0x8e,623},
@@ -215,8 +223,10 @@
16*158.00, 16*453.00, 0xa0,0x90,0x30,0x8e,732},
{ "LG PAL (newer TAPC series)", LGINNOTEK, PAL,
16*170.00, 16*450.00, 0x01,0x02,0x08,0x8e,623},
- { "Philips PAL/SECAM multi (FM1216ME)", Philips, PAL,
+ { "Philips PAL/SECAM multi (FM1216ME MK3)", Philips, PAL,
16*160.00,16*442.00,0x01,0x02,0x04,0x8e,623 },
+ { "LG NTSC (newer TAPC series)", LGINNOTEK, NTSC,
+ 16*170.00, 16*450.00, 0x01,0x02,0x08,0x8e,732},
};
#define TUNERS (sizeof(tuners)/sizeof(struct tunertype))
@@ -295,6 +305,13 @@
}
printk("\n ");
}
+ // Look for MT2032 id:
+ // part= 0x04(MT2032), 0x06(MT2030), 0x07(MT2040)
+ if((buf[0x11] != 0x4d) || (buf[0x12] != 0x54) || (buf[0x13] != 0x04)) {
+ printk("not a MT2032.\n");
+ return 0;
+ }
+
// Initialize Registers per spec.
buf[1]=2; // Index to register 2
@@ -621,7 +638,7 @@
/* tv norm specific stuff for multi-norm tuners */
switch (t->type) {
- case TUNER_PHILIPS_SECAM:
+ case TUNER_PHILIPS_SECAM: // FI1216MF
/* 0x01 -> ??? no change ??? */
/* 0x02 -> PAL BDGHI / SECAM L */
/* 0x04 -> ??? PAL others / SECAM others ??? */
@@ -751,7 +768,7 @@
buffer[1] = div & 0xff;
buffer[2] = tun->config;
switch (t->type) {
- case TUNER_PHILIPS_FM1216ME:
+ case TUNER_PHILIPS_FM1216ME_MK3:
buffer[3] = 0x19;
break;
default:
@@ -857,12 +874,14 @@
/* --- configuration --- */
case TUNER_SET_TYPE:
- if (t->type != -1)
+ if (t->type != -1) {
+ printk("tuner: type already set\n");
return 0;
+ }
if (*iarg < 0 || *iarg >= TUNERS)
return 0;
t->type = *iarg;
- dprintk("tuner: type set to %d (%s)\n",
+ printk("tuner: type set to %d (%s)\n",
t->type,tuners[t->type].name);
strncpy(client->name, tuners[t->type].name, sizeof(client->name));
if (t->type == TUNER_MT2032)
@@ -965,7 +984,7 @@
};
static struct i2c_client client_template =
{
- name: "(unset)",
+ name: "(tuner unset)",
flags: I2C_CLIENT_ALLOW_USE,
driver: &driver,
};
--- linux-2.5.45/drivers/media/video/tuner.h 2002-10-31 14:04:38.000000000 +0100
+++ linux/drivers/media/video/tuner.h 2002-10-31 14:20:28.000000000 +0100
@@ -62,7 +62,9 @@
#define TUNER_TEMIC_4012FY5 35 /* 4012 FY5 (3X 0971, 1099)*/
#define TUNER_TEMIC_4136FY5 36 /* 4136 FY5 (3X 7708, 7746)*/
#define TUNER_LG_PAL_NEW_TAPC 37
-#define TUNER_PHILIPS_FM1216ME 38
+#define TUNER_PHILIPS_FM1216ME_MK3 38
+#define TUNER_LG_NTSC_NEW_TAPC 39
+
@@ -84,7 +86,9 @@
#define TUNER_SET_TYPE _IOW('t',1,int) /* set tuner type */
#define TUNER_SET_TVFREQ _IOW('t',2,int) /* set tv freq */
-#define TUNER_SET_RADIOFREQ _IOW('t',3,int) /* set radio freq */
-#define TUNER_SET_MODE _IOW('t',4,int) /* set tuner mode */
+#if 0 /* obsolete */
+# define TUNER_SET_RADIOFREQ _IOW('t',3,int) /* set radio freq */
+# define TUNER_SET_MODE _IOW('t',4,int) /* set tuner mode */
+#endif
#endif
--
You can't please everybody. And usually if you _try_ to please
everybody, the end result is one big mess.
-- Linus Torvalds, 2002-04-20
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-10-31 15:26 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-31 16:31 [patch] tv tuner driver 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.