diff -Naur linux-2.6.17.7.orig/drivers/media/dvb/ttpci/budget-av.c linux-2.6.17.7/drivers/media/dvb/ttpci/budget-av.c --- linux-2.6.17.7.orig/drivers/media/dvb/ttpci/budget-av.c 2006-07-25 14:53:19.000000000 +0100 +++ linux-2.6.17.7/drivers/media/dvb/ttpci/budget-av.c 2006-07-25 15:25:32.000000000 +0100 @@ -58,6 +58,7 @@ struct tasklet_struct ciintf_irq_tasklet; int slot_status; struct dvb_ca_en50221 ca; + u8 reinitialise_demod:1; }; /* GPIO Connections: @@ -214,8 +215,9 @@ while (--timeout > 0 && ciintf_read_attribute_mem(ca, slot, 0) != 0x1d) msleep(100); - /* reinitialise the frontend */ - dvb_frontend_reinitialise(budget_av->budget.dvb_frontend); + /* reinitialise the frontend if necessary */ + if (budget_av->reinitialise_demod) + dvb_frontend_reinitialise(budget_av->budget.dvb_frontend); if (timeout <= 0) { @@ -1064,12 +1066,10 @@ fe = tda10021_attach(&philips_cu1216_config, &budget_av->budget.i2c_adap, read_pwm(budget_av)); - if (fe) { - fe->ops.tuner_ops.set_params = philips_cu1216_tuner_set_params; - } break; case SUBID_DVBC_KNC1_PLUS: + budget_av->reinitialise_demod = 1; fe = tda10021_attach(&philips_cu1216_config, &budget_av->budget.i2c_adap, read_pwm(budget_av));