aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@redhat.com>2007-03-07 12:12:38 -0500
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-03-09 16:03:06 -0500
commite254a4b45f265d9df120b83d5c2c9437902b601b (patch)
treefafd0f0442e98776b75aed033e6ef1268cd51749 /drivers/firewire
parent49e1179b16fe54bfa070cd955a24c5ce82e21d16 (diff)
firewire: Clear all interrupt bits before shutting down.
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>
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/fw-ohci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/firewire/fw-ohci.c b/drivers/firewire/fw-ohci.c
index 508154104328..37467923e98b 100644
--- a/drivers/firewire/fw-ohci.c
+++ b/drivers/firewire/fw-ohci.c
@@ -1943,7 +1943,8 @@ static void pci_remove(struct pci_dev *dev)
1943 struct fw_ohci *ohci; 1943 struct fw_ohci *ohci;
1944 1944
1945 ohci = pci_get_drvdata(dev); 1945 ohci = pci_get_drvdata(dev);
1946 reg_write(ohci, OHCI1394_IntMaskClear, OHCI1394_masterIntEnable); 1946 reg_write(ohci, OHCI1394_IntMaskClear, ~0);
1947 flush_writes(ohci);
1947 fw_core_remove_card(&ohci->card); 1948 fw_core_remove_card(&ohci->card);
1948 1949
1949 /* FIXME: Fail all pending packets here, now that the upper 1950 /* FIXME: Fail all pending packets here, now that the upper