]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
[media] bttv: fix missing irq after reloading driver
authorHans Verkuil <hverkuil@xs4all.nl>
Fri, 3 Apr 2015 11:13:14 +0000 (08:13 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Fri, 1 May 2015 09:59:54 +0000 (06:59 -0300)
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.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/bt8xx/bttv-driver.c

index 0f10e051f7fd86675c0dcbb878c85f8ba57bf903..3632958f21585dc093f11e431c3f54b9605ef167 100644 (file)
@@ -4239,6 +4239,7 @@ static int bttv_probe(struct pci_dev *dev, const struct pci_device_id *pci_id)
                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;
 }
 
@@ -4282,6 +4283,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;