diff options
author | Holger Waechtler <devnull@localhost> | 2004-06-24 10:43:54 +0000 |
---|---|---|
committer | Holger Waechtler <devnull@localhost> | 2004-06-24 10:43:54 +0000 |
commit | 307b9d61a148ab8bc832309a1ef199f2ad6f5255 (patch) | |
tree | 1566697df51fb9ab14573a0e0fe6e6dabb58a35c /linux/drivers/media | |
parent | 4ddfa4bf1301496472dac0bcade593e968a7c665 (diff) | |
download | mediapointer-dvb-s2-307b9d61a148ab8bc832309a1ef199f2ad6f5255.tar.gz mediapointer-dvb-s2-307b9d61a148ab8bc832309a1ef199f2ad6f5255.tar.bz2 |
Uli Luckas' Cinergy1200 patchsets and SAA patches fixing the broken frontend drivers after the kernel-i2c changes
Diffstat (limited to 'linux/drivers/media')
-rw-r--r-- | linux/drivers/media/dvb/frontends/stv0299.c | 25 | ||||
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget-av.c | 4 | ||||
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget-core.c | 1 | ||||
-rw-r--r-- | linux/drivers/media/dvb/ttpci/budget.h | 1 |
4 files changed, 26 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/frontends/stv0299.c b/linux/drivers/media/dvb/frontends/stv0299.c index 09f6f0119..3866ea2da 100644 --- a/linux/drivers/media/dvb/frontends/stv0299.c +++ b/linux/drivers/media/dvb/frontends/stv0299.c @@ -79,6 +79,7 @@ static int stv0299_status = 0; #define SAMSUNG_TBMU24112IMB 4 #define PHILIPS_SU1278_TSA_TT 5 // SU1278 with TSA5059 synth and TechnoTrend settings #define PHILIPS_SU1278_TSA_TY 6 // SU1278 with TUA5059 synth and Typhoon wiring +#define PHILIPS_SU1278_TSA_CI 7 // SU1278 with TUA5059 synth and TerraTec Cinergy wiring /* Master Clock = 88 MHz */ #define M_CLK (88000000UL) @@ -393,7 +394,8 @@ static int tsa5059_set_tv_freq (struct i2c_adapter *i2c, u32 freq, int ftype, in case PHILIPS_SU1278_TSA: case PHILIPS_SU1278_TSA_TT: case PHILIPS_SU1278_TSA_TY: - if (ftype == PHILIPS_SU1278_TSA_TY) + case PHILIPS_SU1278_TSA_CI: + if (ftype == PHILIPS_SU1278_TSA_TY || ftype == PHILIPS_SU1278_TSA_CI) addr = 0x61; else addr = 0x60; @@ -620,7 +622,7 @@ static int stv0299_init (struct i2c_adapter *i2c, int ftype) stv0299_writereg (i2c, init_tab[i], init_tab[i+1]); /* AGC1 reference register setup */ - if (ftype == PHILIPS_SU1278_TSA || ftype == PHILIPS_SU1278_TSA_TY) + if (ftype == PHILIPS_SU1278_TSA || ftype == PHILIPS_SU1278_TSA_TY || ftype == PHILIPS_SU1278_TSA_CI) stv0299_writereg (i2c, 0x0f, 0x92); /* Iagc = Inverse, m1 = 18 */ else if (ftype == PHILIPS_SU1278_TUA) stv0299_writereg (i2c, 0x0f, 0x94); /* Iagc = Inverse, m1 = 20 */ @@ -855,11 +857,18 @@ static int stv0299_set_voltage (struct i2c_adapter *i2c, fe_sec_voltage_t voltag return stv0299_writereg (i2c, 0x08, 0x00); /* LNB power off! */ } - stv0299_writereg (i2c, 0x08, reg0x08 | 0x40); + if (tuner_type == PHILIPS_SU1278_TSA_CI) + { + stv0299_writereg (i2c, 0x08, reg0x08 & 0xBF); // switch LNB power on OP2/LOCK pin off + } + else + { + stv0299_writereg (i2c, 0x08, reg0x08 | 0x40); + } switch (voltage) { case SEC_VOLTAGE_13: - if (tuner_type == PHILIPS_SU1278_TSA_TY) + if (tuner_type == PHILIPS_SU1278_TSA_TY || tuner_type == PHILIPS_SU1278_TSA_CI) return stv0299_writereg (i2c, 0x0c, reg0x0c | 0x10); else return stv0299_writereg (i2c, 0x0c, reg0x0c | 0x40); @@ -925,6 +934,7 @@ static int stv0299_set_symbolrate (struct i2c_adapter *i2c, u32 srate, int tuner break; case PHILIPS_SU1278_TSA_TY: + case PHILIPS_SU1278_TSA_CI: case PHILIPS_SU1278_TSA: aclk = 0xb5; if (srate < 2000000) bclk = 0x86; @@ -1300,6 +1310,13 @@ static long probe_tuner (struct i2c_adapter *adapter) // Typhoon cards have unusual wiring. printk ("stv0299: setup for tuner SU1278 (TSA5059 synth) on Typhoon hardware\n"); return PHILIPS_SU1278_TSA_TY; + } + else if ( strcmp(adapter->name, "TerraTec Cinergy 1200 DVB-S") == 0 ) + { + // Cinergy cards have unusual wiring. + printk ("%s: setup for tuner SU1278 (TSA5059 synth) on" + " TerraTec hardware\n", __FILE__); + return PHILIPS_SU1278_TSA_CI; } //else if ((stat[0] & 0x3f) == 0) { else if (0) { diff --git a/linux/drivers/media/dvb/ttpci/budget-av.c b/linux/drivers/media/dvb/ttpci/budget-av.c index 7a80f544a..520d5372c 100644 --- a/linux/drivers/media/dvb/ttpci/budget-av.c +++ b/linux/drivers/media/dvb/ttpci/budget-av.c @@ -199,7 +199,7 @@ static int budget_av_attach (struct saa7146_dev* dev, DEB_EE(("dev: %p\n",dev)); - if (bi->type != BUDGET_KNC1) { + if (bi->type != BUDGET_KNC1 && bi->type != BUDGET_CIN1200) { return -ENODEV; } @@ -359,9 +359,11 @@ static struct saa7146_extension budget_extension; MAKE_BUDGET_INFO(knc1, "KNC1 DVB-S", BUDGET_KNC1); +MAKE_BUDGET_INFO(cin1200, "TerraTec Cinergy 1200 DVB-S", BUDGET_CIN1200); static struct pci_device_id pci_tbl [] = { MAKE_EXTENSION_PCI(knc1, 0x1131, 0x4f56), + MAKE_EXTENSION_PCI(cin1200, 0x153b, 0x1154), { .vendor = 0, } diff --git a/linux/drivers/media/dvb/ttpci/budget-core.c b/linux/drivers/media/dvb/ttpci/budget-core.c index b121742f7..c1172e96a 100644 --- a/linux/drivers/media/dvb/ttpci/budget-core.c +++ b/linux/drivers/media/dvb/ttpci/budget-core.c @@ -338,6 +338,7 @@ int ttpci_budget_init (struct budget *budget, budget->i2c_bus = dvb_register_i2c_bus (master_xfer, dev, budget->dvb_adapter, 0); + strcpy(budget->i2c_adap.name, budget->card->name); if (!budget->i2c_bus) { dvb_unregister_adapter (budget->dvb_adapter); return -ENOMEM; diff --git a/linux/drivers/media/dvb/ttpci/budget.h b/linux/drivers/media/dvb/ttpci/budget.h index 451479956..d1289851d 100644 --- a/linux/drivers/media/dvb/ttpci/budget.h +++ b/linux/drivers/media/dvb/ttpci/budget.h @@ -82,6 +82,7 @@ static struct saa7146_pci_extension_data x_var = { \ #define BUDGET_KNC1 2 #define BUDGET_PATCH 3 #define BUDGET_FS_ACTIVY 4 +#define BUDGET_CIN1200 5 #define BUDGET_VIDEO_PORTA 0 #define BUDGET_VIDEO_PORTB 1 |