Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
[pandora-kernel.git] / drivers / media / dvb / ttpci / budget-av.c
index 2d64d55..b7d1f2f 100644 (file)
@@ -178,7 +178,7 @@ static int ciintf_read_cam_control(struct dvb_ca_en50221 *ca, int slot, u8 addre
        udelay(1);
 
        result = ttpci_budget_debiread(&budget_av->budget, DEBICICAM, address & 3, 1, 0, 0);
-       if ((result == -ETIMEDOUT) || ((result == 0xff) && ((address & 3) < 2))) {
+       if (result == -ETIMEDOUT) {
                ciintf_slot_shutdown(ca, slot);
                printk(KERN_INFO "budget-av: cam ejected 3\n");
                return -ETIMEDOUT;
@@ -577,7 +577,7 @@ static struct stv0299_config typhoon_config = {
        .mclk = 88000000UL,
        .invert = 0,
        .skip_reinit = 0,
-       .lock_output = STV0229_LOCKOUTPUT_1,
+       .lock_output = STV0299_LOCKOUTPUT_1,
        .volt13_op0_op1 = STV0299_VOLT13_OP0,
        .min_delay_ms = 100,
        .set_symbol_rate = philips_su1278_ty_ci_set_symbol_rate,
@@ -590,7 +590,7 @@ static struct stv0299_config cinergy_1200s_config = {
        .mclk = 88000000UL,
        .invert = 0,
        .skip_reinit = 0,
-       .lock_output = STV0229_LOCKOUTPUT_0,
+       .lock_output = STV0299_LOCKOUTPUT_0,
        .volt13_op0_op1 = STV0299_VOLT13_OP0,
        .min_delay_ms = 100,
        .set_symbol_rate = philips_su1278_ty_ci_set_symbol_rate,
@@ -602,7 +602,7 @@ static struct stv0299_config cinergy_1200s_1894_0010_config = {
        .mclk = 88000000UL,
        .invert = 1,
        .skip_reinit = 0,
-       .lock_output = STV0229_LOCKOUTPUT_1,
+       .lock_output = STV0299_LOCKOUTPUT_1,
        .volt13_op0_op1 = STV0299_VOLT13_OP0,
        .min_delay_ms = 100,
        .set_symbol_rate = philips_su1278_ty_ci_set_symbol_rate,
@@ -667,6 +667,11 @@ static struct tda1002x_config philips_cu1216_config_altaddress = {
        .invert = 0,
 };
 
+static struct tda10023_config philips_cu1216_tda10023_config = {
+       .demod_address = 0x0c,
+       .invert = 1,
+};
+
 static int philips_tu1216_tuner_init(struct dvb_frontend *fe)
 {
        struct budget *budget = (struct budget *) fe->dvb->priv;
@@ -869,7 +874,7 @@ static struct stv0299_config philips_sd1878_config = {
        .mclk = 88000000UL,
        .invert = 0,
        .skip_reinit = 0,
-       .lock_output = STV0229_LOCKOUTPUT_1,
+       .lock_output = STV0299_LOCKOUTPUT_1,
        .volt13_op0_op1 = STV0299_VOLT13_OP0,
        .min_delay_ms = 100,
        .set_symbol_rate = philips_sd1878_ci_set_symbol_rate,
@@ -941,6 +946,12 @@ static void frontend_init(struct budget_av *budget_av)
        switch (saa->pci->subsystem_device) {
 
        case SUBID_DVBS_KNC1:
+               /*
+                * maybe that setting is needed for other dvb-s cards as well,
+                * but so far it has been only confirmed for this type
+                */
+               budget_av->reinitialise_demod = 1;
+               /* fall through */
        case SUBID_DVBS_KNC1_PLUS:
        case SUBID_DVBS_EASYWATCH_1:
                if (saa->pci->subsystem_vendor == 0x1894) {
@@ -1013,9 +1024,10 @@ static void frontend_init(struct budget_av *budget_av)
        case SUBID_DVBC_KNC1_PLUS_MK3:
                budget_av->reinitialise_demod = 1;
                budget_av->budget.dev->i2c_bitrate = SAA7146_I2C_BUS_BIT_RATE_240;
-               fe = dvb_attach(tda10023_attach, &philips_cu1216_config,
-                                    &budget_av->budget.i2c_adap,
-                                    read_pwm(budget_av));
+               fe = dvb_attach(tda10023_attach,
+                       &philips_cu1216_tda10023_config,
+                       &budget_av->budget.i2c_adap,
+                       read_pwm(budget_av));
                if (fe) {
                        fe->ops.tuner_ops.set_params = philips_cu1216_tuner_set_params;
                }