dvb_unregister_adapter (ttusb->adapter); 
dvb_unregister_adapter (&ttusb->adapter); 
static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *id){	struct usb_device *udev;	struct ttusb *ttusb;	int result;	dprintk("%s: TTUSB DVB connected\n", __FUNCTION__);	udev = interface_to_usbdev(intf);        if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV;	if (!(ttusb = kmalloc(sizeof(struct ttusb), GFP_KERNEL)))		return -ENOMEM;	memset(ttusb, 0, sizeof(struct ttusb));	ttusb->dev = udev;	ttusb->c = 0;	ttusb->mux_state = 0;	sema_init(&ttusb->semi2c, 0);	sema_init(&ttusb->semusb, 1);	ttusb_setup_interfaces(ttusb);	ttusb_alloc_iso_urbs(ttusb);	if (ttusb_init_controller(ttusb))		printk("ttusb_init_controller: error\n");	up(&ttusb->semi2c);	dvb_register_adapter(&ttusb->adapter, "Technotrend/Hauppauge Nova-USB", THIS_MODULE);	ttusb->adapter->priv = ttusb;	/* i2c */	memset(&ttusb->i2c_adap, 0, sizeof(struct i2c_adapter));	strcpy(ttusb->i2c_adap.name, "TTUSB DEC");	i2c_set_adapdata(&ttusb->i2c_adap, ttusb);#ifdef I2C_ADAP_CLASS_TV_DIGITAL	ttusb->i2c_adap.class		  = I2C_ADAP_CLASS_TV_DIGITAL;#else	ttusb->i2c_adap.class		  = I2C_CLASS_TV_DIGITAL;#endif	ttusb->i2c_adap.algo              = &ttusb_dec_algo;	ttusb->i2c_adap.algo_data         = NULL;	ttusb->i2c_adap.id                = I2C_ALGO_BIT;	result = i2c_add_adapter(&ttusb->i2c_adap);	if (result) {		dvb_unregister_adapter (ttusb->adapter);		return result;	}	memset(&ttusb->dvb_demux, 0, sizeof(ttusb->dvb_demux));	ttusb->dvb_demux.dmx.capabilities =	    DMX_TS_FILTERING | DMX_SECTION_FILTERING;	ttusb->dvb_demux.priv = NULL;#ifdef TTUSB_HWSECTIONS	ttusb->dvb_demux.filternum = TTUSB_MAXFILTER;#else	ttusb->dvb_demux.filternum = 32;#endif	ttusb->dvb_demux.feednum = TTUSB_MAXCHANNEL;	ttusb->dvb_demux.start_feed = ttusb_start_feed;	ttusb->dvb_demux.stop_feed = ttusb_stop_feed;	ttusb->dvb_demux.write_to_decoder = NULL;	if ((result = dvb_dmx_init(&ttusb->dvb_demux)) < 0) {		printk("ttusb_dvb: dvb_dmx_init failed (errno = %d)\n", result);		i2c_del_adapter(&ttusb->i2c_adap);		dvb_unregister_adapter (ttusb->adapter);		return -ENODEV;	}//FIXME dmxdev (nur WAS?)	ttusb->dmxdev.filternum = ttusb->dvb_demux.filternum;	ttusb->dmxdev.demux = &ttusb->dvb_demux.dmx;	ttusb->dmxdev.capabilities = 0;	if ((result = dvb_dmxdev_init(&ttusb->dmxdev, ttusb->adapter)) < 0) {		printk("ttusb_dvb: dvb_dmxdev_init failed (errno = %d)\n",		       result);		dvb_dmx_release(&ttusb->dvb_demux);		i2c_del_adapter(&ttusb->i2c_adap);		dvb_unregister_adapter (ttusb->adapter);		return -ENODEV;	}	if (dvb_net_init(ttusb->adapter, &ttusb->dvbnet, &ttusb->dvb_demux.dmx)) {		printk("ttusb_dvb: dvb_net_init failed!\n");		dvb_dmxdev_release(&ttusb->dmxdev);		dvb_dmx_release(&ttusb->dvb_demux);		i2c_del_adapter(&ttusb->i2c_adap);		dvb_unregister_adapter (ttusb->adapter);		return -ENODEV;	}#if 0	ttusb->stc_devfs_handle =	    devfs_register(ttusb->adapter->devfs_handle, TTUSB_BUDGET_NAME,			   DEVFS_FL_DEFAULT, 0, 192,			   S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP			   | S_IROTH | S_IWOTH, &stc_fops, ttusb);#endif	usb_set_intfdata(intf, (void *) ttusb);	frontend_init(ttusb);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/fdc53a6dbfea18e621dd23ed5cfb160837d7ce52/dvb-ttusb-budget.c/clean/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c