/* shutdown everything (DMA+IRQs) */ 
/* shutdown everything (DMA+IRQs) */ 
static void __devexit bttv_remove(struct pci_dev *pci_dev){        struct bttv *btv = pci_get_drvdata(pci_dev);	if (bttv_verbose)		printk("bttv%d: unloading\n",btv->c.nr);        /* shutdown everything (DMA+IRQs) */	btand(~15, BT848_GPIO_DMA_CTL);	btwrite(0, BT848_INT_MASK);	btwrite(~0x0, BT848_INT_STAT);	btwrite(0x0, BT848_GPIO_OUT_EN);	if (bttv_gpio)		bttv_gpio_tracking(btv,"cleanup");	/* tell gpio modules we are leaving ... */	btv->shutdown=1;	wake_up(&btv->gpioq);	bttv_sub_del_devices(&btv->c);        /* unregister i2c_bus + input */	fini_bttv_i2c(btv);	/* unregister video4linux */	bttv_unregister_video(btv);	/* free allocated memory */	btcx_riscmem_free(btv->c.pci,&btv->main);	/* free ressources */        free_irq(btv->c.pci->irq,btv);	iounmap(btv->bt848_mmio);        release_mem_region(pci_resource_start(btv->c.pci,0),                           pci_resource_len(btv->c.pci,0));	pci_set_drvdata(pci_dev, NULL);        return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4ac97914c6c35f6bf132071c718e034d0846b9f5/bttv-driver.c/buggy/drivers/media/video/bttv-driver.c