pluto->i2c_adap.id = I2C_ALGO_BIT; 
static int __devinit pluto2_probe(struct pci_dev *pdev,				  const struct pci_device_id *ent){	struct pluto *pluto;	struct dvb_adapter *dvb_adapter;	struct dvb_demux *dvbdemux;	struct dmx_demux *dmx;	int ret = -ENOMEM;	pluto = kmalloc(sizeof(struct pluto), GFP_KERNEL);	if (!pluto)		goto out;	memset(pluto, 0, sizeof(struct pluto));	pluto->pdev = pdev;	ret = pci_enable_device(pdev);	if (ret < 0)		goto err_kfree;	/* enable interrupts */	pci_write_config_dword(pdev, 0x6c, 0x8000);	ret = pci_set_dma_mask(pdev, DMA_32BIT_MASK);	if (ret < 0)		goto err_pci_disable_device;	pci_set_master(pdev);	ret = pci_request_regions(pdev, DRIVER_NAME);	if (ret < 0)		goto err_pci_disable_device;	pluto->io_mem = pci_iomap(pdev, 0, 0x40);	if (!pluto->io_mem) {		ret = -EIO;		goto err_pci_release_regions;	}	pci_set_drvdata(pdev, pluto);	ret = request_irq(pdev->irq, pluto_irq, SA_SHIRQ, DRIVER_NAME, pluto);	if (ret < 0)		goto err_pci_iounmap;	ret = pluto_hw_init(pluto);	if (ret < 0)		goto err_free_irq;	/* i2c */	i2c_set_adapdata(&pluto->i2c_adap, pluto);	strcpy(pluto->i2c_adap.name, DRIVER_NAME);	pluto->i2c_adap.owner = THIS_MODULE;	pluto->i2c_adap.id = I2C_ALGO_BIT;	pluto->i2c_adap.class = I2C_CLASS_TV_DIGITAL;	pluto->i2c_adap.dev.parent = &pdev->dev;	pluto->i2c_adap.algo_data = &pluto->i2c_bit;	pluto->i2c_bit.data = pluto;	pluto->i2c_bit.setsda = pluto_setsda;	pluto->i2c_bit.setscl = pluto_setscl;	pluto->i2c_bit.getsda = pluto_getsda;	pluto->i2c_bit.getscl = pluto_getscl;	pluto->i2c_bit.udelay = 10;	pluto->i2c_bit.timeout = 10;	/* Raise SCL and SDA */	pluto_setsda(pluto, 1);	pluto_setscl(pluto, 1);	ret = i2c_bit_add_bus(&pluto->i2c_adap);	if (ret < 0)		goto err_pluto_hw_exit;	/* dvb */	ret = dvb_register_adapter(&pluto->dvb_adapter, DRIVER_NAME, THIS_MODULE);	if (ret < 0)		goto err_i2c_bit_del_bus;	dvb_adapter = &pluto->dvb_adapter;	pluto_read_rev(pluto);	pluto_read_serial(pluto);	pluto_read_mac(pluto, dvb_adapter->proposed_mac);	dvbdemux = &pluto->demux;	dvbdemux->filternum = 256;	dvbdemux->feednum = 256;	dvbdemux->start_feed = pluto_start_feed;	dvbdemux->stop_feed = pluto_stop_feed;	dvbdemux->dmx.capabilities = (DMX_TS_FILTERING |			DMX_SECTION_FILTERING | DMX_MEMORY_BASED_FILTERING);	ret = dvb_dmx_init(dvbdemux);	if (ret < 0)		goto err_dvb_unregister_adapter;	dmx = &dvbdemux->dmx;	pluto->hw_frontend.source = DMX_FRONTEND_0;	pluto->mem_frontend.source = DMX_MEMORY_FE;	pluto->dmxdev.filternum = NHWFILTERS;	pluto->dmxdev.demux = dmx;	ret = dvb_dmxdev_init(&pluto->dmxdev, dvb_adapter);	if (ret < 0)		goto err_dvb_dmx_release;	ret = dmx->add_frontend(dmx, &pluto->hw_frontend);	if (ret < 0)		goto err_dvb_dmxdev_release;	ret = dmx->add_frontend(dmx, &pluto->mem_frontend);	if (ret < 0)		goto err_remove_hw_frontend;	ret = dmx->connect_frontend(dmx, &pluto->hw_frontend);	if (ret < 0)		goto err_remove_mem_frontend;	ret = frontend_init(pluto);	if (ret < 0)		goto err_disconnect_frontend;	dvb_net_init(dvb_adapter, &pluto->dvbnet, dmx);out:	return ret;err_disconnect_frontend:	dmx->disconnect_frontend(dmx);err_remove_mem_frontend:	dmx->remove_frontend(dmx, &pluto->mem_frontend);err_remove_hw_frontend:	dmx->remove_frontend(dmx, &pluto->hw_frontend);err_dvb_dmxdev_release:	dvb_dmxdev_release(&pluto->dmxdev);err_dvb_dmx_release:	dvb_dmx_release(dvbdemux);err_dvb_unregister_adapter:	dvb_unregister_adapter(dvb_adapter);err_i2c_bit_del_bus:	i2c_bit_del_bus(&pluto->i2c_adap);err_pluto_hw_exit:	pluto_hw_exit(pluto);err_free_irq:	free_irq(pdev->irq, pluto);err_pci_iounmap:	pci_iounmap(pdev, pluto->io_mem);err_pci_release_regions:	pci_release_regions(pdev);err_pci_disable_device:	pci_disable_device(pdev);err_kfree:	pci_set_drvdata(pdev, NULL);	kfree(pluto);	goto out;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1684a984303abbfc39aa8b59b0fe825c717811a9/pluto2.c/clean/drivers/media/dvb/pluto2/pluto2.c