summaryrefslogtreecommitdiff
path: root/drivers/firewire/fw-ohci.c
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 22:03:06 +0100
commite254a4b45f265d9df120b83d5c2c9437902b601b (patch)
treefafd0f0442e98776b75aed033e6ef1268cd51749 /drivers/firewire/fw-ohci.c
parent49e1179b16fe54bfa070cd955a24c5ce82e21d16 (diff)
downloadlwn-e254a4b45f265d9df120b83d5c2c9437902b601b.tar.gz
lwn-e254a4b45f265d9df120b83d5c2c9437902b601b.zip
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/fw-ohci.c')
-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)
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