if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend)) { printk("budget: Frontend registration failed!\n"); if (budget->dvb_frontend->ops->release) budget->dvb_frontend->ops->release(budget->dvb_frontend); budget->dvb_frontend = NULL; } 
if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend)) goto error_out; 
static void frontend_init(struct budget *budget){	switch(budget->dev->pci->subsystem_device) {	case 0x1003: // Hauppauge/TT Nova budget (stv0299/ALPS BSRU6(tsa5059) OR ves1893/ALPS BSRV2(sp5659))	case 0x1013:		// try the ALPS BSRV2 first of all		budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap);		if (budget->dvb_frontend) {			budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd;		        budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst;			budget->dvb_frontend->ops->set_tone = budget_set_tone;			break;		}		// try the ALPS BSRU6 now		budget->dvb_frontend = stv0299_attach(&alps_bsru6_config, &budget->i2c_adap);		if (budget->dvb_frontend) {			budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd;			budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst;			budget->dvb_frontend->ops->set_tone = budget_set_tone;			break;		}		break;	case 0x1004: // Hauppauge/TT DVB-C budget (ves1820/ALPS TDBE2(sp5659))		budget->dvb_frontend = ves1820_attach(&alps_tdbe2_config, &budget->i2c_adap, read_pwm(budget));		if (budget->dvb_frontend) break;		break;	case 0x1005: // Hauppauge/TT Nova-T budget (L64781/Grundig 29504-401(tsa5060))		budget->dvb_frontend = l64781_attach(&grundig_29504_401_config, &budget->i2c_adap);		if (budget->dvb_frontend) break;		break;	case 0x4f60: // Fujitsu Siemens Activy Budget-S PCI rev AL (stv0299/ALPS BSRU6(tsa5059))		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;		}		break;	case 0x4f61: // Fujitsu Siemens Activy Budget-S PCI rev GR (tda8083/Grundig 29504-451(tsa5522))		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;		}		break;	case 0x1016: // Hauppauge/TT Nova-S SE (samsung s5h1420/????(tda8260))		budget->dvb_frontend = s5h1420_attach(&s5h1420_config, &budget->i2c_adap);		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;			lnbp21_init(budget);			break;		}	}	if (budget->dvb_frontend == NULL) {		printk("budget: A frontend driver was not found for device %04x/%04x subsystem %04x/%04x\n",		       budget->dev->pci->vendor,		       budget->dev->pci->device,		       budget->dev->pci->subsystem_vendor,		       budget->dev->pci->subsystem_device);	} else {		if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend)) {			printk("budget: Frontend registration failed!\n");			if (budget->dvb_frontend->ops->release)				budget->dvb_frontend->ops->release(budget->dvb_frontend);			budget->dvb_frontend = NULL;		}	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9691bb14d9ab646868a6392e9419070c304a9590/budget.c/buggy/drivers/media/dvb/ttpci/budget.c