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 22:03:06 +0100 |
commit | e254a4b45f265d9df120b83d5c2c9437902b601b (patch) | |
tree | fafd0f0442e98776b75aed033e6ef1268cd51749 /drivers/firewire/fw-ohci.c | |
parent | 49e1179b16fe54bfa070cd955a24c5ce82e21d16 (diff) | |
download | lwn-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.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) 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 |