Skip to contentSkip to conversation

bttv: fix missing irq after reloading driver

PATCH New Hans Verkuil 1 participant 1 message Apr 3, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 bttv: fix missing irq after reloading driver

If pci_disable_device() isn't called when the driver is removed, then the next time when it is loaded the irq isn't found.

I'm pretty sure this used to work in the past, but calling pci_disable_device() is clearly the correct method and this makes it work again.

---

drivers/media/pci/bt8xx/bttv-driver.c +2 -0
index 4ec2a3c..cdf8d2e 100644
@@ -4267,6 +4267,7 @@ fail0:
 		iounmap(btv->bt848_mmio);
 	release_mem_region(pci_resource_start(btv->c.pci,0),
 			   pci_resource_len(btv->c.pci,0));
+	pci_disable_device(btv->c.pci);
 	return result;
 }
 
@@ -4310,6 +4311,7 @@ static void bttv_remove(struct pci_dev *pci_dev)
 	iounmap(btv->bt848_mmio);
 	release_mem_region(pci_resource_start(btv->c.pci,0),
 			   pci_resource_len(btv->c.pci,0));
+	pci_disable_device(btv->c.pci);
 
 	v4l2_device_unregister(&btv->c.v4l2_dev);
 	bttvs[btv->c.nr] = NULL;