From: Oliver Endriss LNB power can now be switched off for Activy Budget-S rev GR/AL. Dishnetwork support fixed for Nova-S with bsbe1/lnbp21 frontend and Activy Budget-S rev AL. Signed-off-by: Oliver Endriss Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/dvb/ttpci/budget-core.c | 4 +--- drivers/media/dvb/ttpci/budget.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff -puN drivers/media/dvb/ttpci/budget.c~dvb-2432-lnb-power-can-now-be-switched-off-for drivers/media/dvb/ttpci/budget.c --- devel/drivers/media/dvb/ttpci/budget.c~dvb-2432-lnb-power-can-now-be-switched-off-for 2005-12-09 22:50:28.000000000 -0800 +++ devel-akpm/drivers/media/dvb/ttpci/budget.c 2005-12-09 22:50:28.000000000 -0800 @@ -112,6 +112,7 @@ static int SendDiSEqCMsg (struct budget * Routines for the Fujitsu Siemens Activy budget card * 22 kHz tone and DiSEqC are handled by the frontend. * Voltage must be set here. + * GPIO 1: LNBP EN, GPIO 2: LNBP VSEL */ static int SetVoltage_Activy (struct budget *budget, fe_sec_voltage_t voltage) { @@ -121,11 +122,16 @@ static int SetVoltage_Activy (struct bud switch (voltage) { case SEC_VOLTAGE_13: + saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); saa7146_setgpio(dev, 2, SAA7146_GPIO_OUTLO); break; case SEC_VOLTAGE_18: + saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); saa7146_setgpio(dev, 2, SAA7146_GPIO_OUTHI); break; + case SEC_VOLTAGE_OFF: + saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTLO); + break; default: return -EINVAL; } @@ -580,6 +586,7 @@ static void frontend_init(struct budget if (budget->dvb_frontend) { budget->dvb_frontend->ops->set_voltage = lnbp21_set_voltage; budget->dvb_frontend->ops->enable_high_lnb_voltage = lnbp21_enable_high_lnb_voltage; + budget->dvb_frontend->ops->dishnetwork_send_legacy_command = NULL; if (lnbp21_init(budget)) { printk("%s: No LNBP21 found!\n", __FUNCTION__); goto error_out; @@ -624,7 +631,7 @@ static void frontend_init(struct budget budget->dvb_frontend = stv0299_attach(&alps_bsru6_config, &budget->i2c_adap); if (budget->dvb_frontend) { budget->dvb_frontend->ops->set_voltage = siemens_budget_set_voltage; - break; + budget->dvb_frontend->ops->dishnetwork_send_legacy_command = NULL; } break; @@ -632,7 +639,7 @@ static void frontend_init(struct budget budget->dvb_frontend = tda8083_attach(&grundig_29504_451_config, &budget->i2c_adap); if (budget->dvb_frontend) { budget->dvb_frontend->ops->set_voltage = siemens_budget_set_voltage; - break; + budget->dvb_frontend->ops->dishnetwork_send_legacy_command = NULL; } break; diff -puN drivers/media/dvb/ttpci/budget-core.c~dvb-2432-lnb-power-can-now-be-switched-off-for drivers/media/dvb/ttpci/budget-core.c --- devel/drivers/media/dvb/ttpci/budget-core.c~dvb-2432-lnb-power-can-now-be-switched-off-for 2005-12-09 22:50:28.000000000 -0800 +++ devel-akpm/drivers/media/dvb/ttpci/budget-core.c 2005-12-09 22:50:28.000000000 -0800 @@ -404,9 +404,7 @@ int ttpci_budget_init(struct budget *bud tasklet_init(&budget->vpe_tasklet, vpeirq, (unsigned long) budget); /* frontend power on */ - if (bi->type == BUDGET_FS_ACTIVY) - saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); - else + if (bi->type != BUDGET_FS_ACTIVY) saa7146_setgpio(dev, 2, SAA7146_GPIO_OUTHI); if (budget_register(budget) == 0) { _