diff options
author | Kristian Høgsberg <krh@redhat.com> | 2007-03-07 12:12:38 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-03-09 16:03:06 -0500 |
commit | e254a4b45f265d9df120b83d5c2c9437902b601b (patch) | |
tree | fafd0f0442e98776b75aed033e6ef1268cd51749 /drivers/firewire | |
parent | 49e1179b16fe54bfa070cd955a24c5ce82e21d16 (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.c | 3 |
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 |