if (dvb_register_frontend(dib->adapter, dib->fe)) { 
if (dvb_register_frontend(&dib->adapter, dib->fe)) { 
int dibusb_fe_init(struct usb_dibusb* dib){	struct dib3000_config demod_cfg;	int i;	if (dib->init_state & DIBUSB_STATE_I2C) {		for (i = 0; i < sizeof(dib->dibdev->dev_cl->demod->i2c_addrs) / sizeof(unsigned char) &&				dib->dibdev->dev_cl->demod->i2c_addrs[i] != 0; i++) {			demod_cfg.demod_address = dib->dibdev->dev_cl->demod->i2c_addrs[i];			demod_cfg.pll_addr = dibusb_general_pll_addr;			demod_cfg.pll_set = dibusb_general_pll_set;			demod_cfg.pll_init = dibusb_general_pll_init;			deb_info("demod id: %d %d\n",dib->dibdev->dev_cl->demod->id,DTT200U_FE);			switch (dib->dibdev->dev_cl->demod->id) {				case DIBUSB_DIB3000MB:					dib->fe = dib3000mb_attach(&demod_cfg,&dib->i2c_adap,&dib->xfer_ops);				break;				case DIBUSB_DIB3000MC:					dib->fe = dib3000mc_attach(&demod_cfg,&dib->i2c_adap,&dib->xfer_ops);				break;				case DIBUSB_MT352:					mt352_hanftek_umt_010_config.demod_address = dib->dibdev->dev_cl->demod->i2c_addrs[i];					dib->fe = mt352_attach(&mt352_hanftek_umt_010_config, &dib->i2c_adap);				break;				case DTT200U_FE:					dib->fe = dtt200u_fe_attach(dib,&dib->xfer_ops);				break;			}			if (dib->fe != NULL) {				info("found demodulator at i2c address 0x%x",dib->dibdev->dev_cl->demod->i2c_addrs[i]);				break;			}		}		/* if a frontend was found */		if (dib->fe != NULL) {			if (dib->fe->ops->sleep != NULL)				dib->fe_sleep = dib->fe->ops->sleep;			dib->fe->ops->sleep = dibusb_hw_sleep;			if (dib->fe->ops->init != NULL )				dib->fe_init = dib->fe->ops->init;			dib->fe->ops->init = dibusb_hw_wakeup;			/* setting the default tuner */			dib->tuner = dib->dibdev->dev_cl->tuner;			/* check which tuner is mounted on this device, in case this is unsure */			dibusb_tuner_quirk(dib);		}	}	if (dib->fe == NULL) {		err("A frontend driver was not found for device '%s'.",		       dib->dibdev->name);		return -ENODEV;	} else {		if (dvb_register_frontend(dib->adapter, dib->fe)) {			err("Frontend registration failed.");			if (dib->fe->ops->release)				dib->fe->ops->release(dib->fe);			dib->fe = NULL;			return -ENODEV;		}	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/fdc53a6dbfea18e621dd23ed5cfb160837d7ce52/dvb-dibusb-fe-i2c.c/buggy/drivers/media/dvb/dibusb/dvb-dibusb-fe-i2c.c