firewire: Clear all interrupt bits before shutting down.
authorKristian Høgsberg <krh@redhat.com>
Wed, 7 Mar 2007 17:12:38 +0000 (12:12 -0500)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 9 Mar 2007 21:03:06 +0000 (22:03 +0100)
Some flaky controllers doesn't honor the masterIntEnable bits
and can generate bus reset events even if that bit is cleared.

Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/fw-ohci.c

index 508154104328145be6c85c31160d728fe1568951..37467923e98be666e301b768e284246323b0ba73 100644 (file)
@@ -1943,7 +1943,8 @@ static void pci_remove(struct pci_dev *dev)
        struct fw_ohci *ohci;
 
        ohci = pci_get_drvdata(dev);
-       reg_write(ohci, OHCI1394_IntMaskClear, OHCI1394_masterIntEnable);
+       reg_write(ohci, OHCI1394_IntMaskClear, ~0);
+       flush_writes(ohci);
        fw_core_remove_card(&ohci->card);
 
        /* FIXME: Fail all pending packets here, now that the upper