summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2005-03-01 10:22:25 +0000
committerGerd Knorr <devnull@localhost>2005-03-01 10:22:25 +0000
commit5676c0312d6eb567bc20b2be3539c6a22796f490 (patch)
treeb3faa5ed12d84f3900e4b7240a86e32050416046
parent94d904768c35752857972b3ca978203e5ae81ea1 (diff)
downloadmediapointer-dvb-s2-5676c0312d6eb567bc20b2be3539c6a22796f490.tar.gz
mediapointer-dvb-s2-5676c0312d6eb567bc20b2be3539c6a22796f490.tar.bz2
- tuner update (for pvr) from Jarod Wilson.
-rw-r--r--linux/drivers/media/video/tuner-simple.c5
-rw-r--r--linux/drivers/media/video/tvaudio.c2
-rw-r--r--linux/drivers/media/video/tveeprom.c22
-rw-r--r--linux/include/media/tuner.h4
4 files changed, 23 insertions, 10 deletions
diff --git a/linux/drivers/media/video/tuner-simple.c b/linux/drivers/media/video/tuner-simple.c
index 01ec88816..c3f214746 100644
--- a/linux/drivers/media/video/tuner-simple.c
+++ b/linux/drivers/media/video/tuner-simple.c
@@ -1,5 +1,5 @@
/*
- * $Id: tuner-simple.c,v 1.5 2005/02/22 09:56:29 kraxel Exp $
+ * $Id: tuner-simple.c,v 1.6 2005/03/01 10:22:25 kraxel Exp $
*
* i2c tv tuner chip device driver
* controls all those simple 4-control-bytes style tuners.
@@ -209,6 +209,9 @@ static struct tunertype tuners[] = {
{ "Philips PAL/SECAM multi (FM1216ME pvr150)", Philips, PAL,
16*160.00,16*442.00,0x01,0x02,0x04,0xce,623 },
+ { "Philips FQ1236A MK4", Philips, NTSC,
+ 16*160.00,16*454.00,0x41,0x42,0x04,0x8e,732 },
+
};
unsigned const int tuner_count = ARRAY_SIZE(tuners);
diff --git a/linux/drivers/media/video/tvaudio.c b/linux/drivers/media/video/tvaudio.c
index 59a8339f1..e5c9dd850 100644
--- a/linux/drivers/media/video/tvaudio.c
+++ b/linux/drivers/media/video/tvaudio.c
@@ -1004,7 +1004,7 @@ static int tda9874a_initialize(struct CHIPSTATE *chip)
{
if (tda9874a_SIF > 2)
tda9874a_SIF = 1;
- if (tda9874a_STD >= 8)
+ if (tda9874a_STD > 8)
tda9874a_STD = 0;
if(tda9874a_AMSEL > 1)
tda9874a_AMSEL = 0;
diff --git a/linux/drivers/media/video/tveeprom.c b/linux/drivers/media/video/tveeprom.c
index eae30132e..dcb9c2d0b 100644
--- a/linux/drivers/media/video/tveeprom.c
+++ b/linux/drivers/media/video/tveeprom.c
@@ -193,7 +193,7 @@ hauppauge_tuner[] =
/* 90-99 */
{ TUNER_ABSENT, "LG TALN H202T"},
{ TUNER_ABSENT, "Philips FQ1216AME MK4"},
- { TUNER_ABSENT, "Philips FQ1236A MK4"},
+ { TUNER_PHILIPS_FQ1236A_MK4, "Philips FQ1236A MK4"},
{ TUNER_ABSENT, "Philips FQ1286A MK4"},
{ TUNER_ABSENT, "Philips FQ1216ME MK5"},
{ TUNER_ABSENT, "Philips FQ1236 MK5"},
@@ -242,6 +242,7 @@ static int hasRadioTuner(int tunerType)
case 61: //PNPEnv_TUNER_TAPE_M001D_MK3:
case 78: //PNPEnv_TUNER_TDA8275C1_8290_FM:
case 89: //PNPEnv_TUNER_TCL_MFPE05_2:
+ case 92: //PNPEnv_TUNER_PHILIPS_FQ1236A_MK4:
return 1;
}
return 0;
@@ -257,8 +258,8 @@ void tveeprom_hauppauge_analog(struct tveeprom *tvee, unsigned char *eeprom_data
** if packet[0] & f8 == f8, then EOD and packet[1] == checksum
**
** In our (ivtv) case we're interested in the following:
- ** tuner type: tag [00].05 or [0a].01 (index into hauppauge_tuners)
- ** tuner fmts: tag [00].04 or [0a].00 (bitmask index into hauppauge_fmts)
+ ** tuner type: tag [00].05 or [0a].01 (index into hauppauge_tuner)
+ ** tuner fmts: tag [00].04 or [0a].00 (bitmask index into hauppauge_tuner_fmt)
** radio: tag [00].{last} or [0e].00 (bitmask. bit2=FM)
** audio proc: tag [02].01 or [05].00 (lower nibble indexes lut?)
@@ -270,11 +271,11 @@ void tveeprom_hauppauge_analog(struct tveeprom *tvee, unsigned char *eeprom_data
** # of inputs/outputs ???
*/
- int i, j, len, done, tag, tuner = 0, t_format = 0;
+ int i, j, len, done, beenhere, tag, tuner = 0, t_format = 0;
char *t_name = NULL, *t_fmt_name = NULL;
dprintk(1, "%s\n",__FUNCTION__);
- tvee->revision = done = len = 0;
+ tvee->revision = done = len = beenhere = 0;
for (i = 0; !done && i < 256; i += len) {
dprintk(2, "processing pos = %02x (%02x, %02x)\n",
i, eeprom_data[i], eeprom_data[i + 1]);
@@ -343,9 +344,14 @@ void tveeprom_hauppauge_analog(struct tveeprom *tvee, unsigned char *eeprom_data
(eeprom_data[i+7] << 16);
break;
case 0x0a:
- tuner = eeprom_data[i+2];
- t_format = eeprom_data[i+1];
- break;
+ if(beenhere == 0) {
+ tuner = eeprom_data[i+2];
+ t_format = eeprom_data[i+1];
+ beenhere = 1;
+ break;
+ } else {
+ break;
+ }
case 0x0e:
tvee->has_radio = eeprom_data[i+1];
break;
diff --git a/linux/include/media/tuner.h b/linux/include/media/tuner.h
index 74378a280..05b033797 100644
--- a/linux/include/media/tuner.h
+++ b/linux/include/media/tuner.h
@@ -93,6 +93,10 @@
#define TUNER_THOMSON_DTT7610 52
#define TUNER_PHILIPS_FQ1286 53
#define TUNER_PHILIPS_TDA8290 54
+#define TUNER_LG_PAL_TAPE 55 /* Hauppauge PVR-150 PAL */
+
+#define TUNER_PHILIPS_FM1216ME 56 /* Hauppauge PVR-150 PAL */
+#define TUNER_PHILIPS_FQ1236A_MK4 57 /* Hauppauge PVR-500MCE NTSC */
#define NOTUNER 0
#define PAL 1 /* PAL_BG */