firewire: Read the *Clear versions of the iso interrupt register.
authorKristian Høgsberg <krh@redhat.com>
Fri, 16 Feb 2007 22:34:36 +0000 (17:34 -0500)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Fri, 9 Mar 2007 21:02:56 +0000 (22:02 +0100)
The *Clear registers returns the masked value when read which is
what we want.

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 4d54ebf0b19299270ad74f4f819af33c81e5953a..72f80361fc431507d2a31db44314e6c30b3975ad 100644 (file)
@@ -847,7 +847,7 @@ static irqreturn_t irq_handler(int irq, void *data)
        if (event & OHCI1394_respTxComplete)
                tasklet_schedule(&ohci->at_response_ctx.tasklet);
 
-       iso_event = reg_read(ohci, OHCI1394_IsoRecvIntEventSet);
+       iso_event = reg_read(ohci, OHCI1394_IsoRecvIntEventClear);
        reg_write(ohci, OHCI1394_IsoRecvIntEventClear, iso_event);
 
        while (iso_event) {
@@ -856,7 +856,7 @@ static irqreturn_t irq_handler(int irq, void *data)
                iso_event &= ~(1 << i);
        }
 
-       iso_event = reg_read(ohci, OHCI1394_IsoXmitIntEventSet);
+       iso_event = reg_read(ohci, OHCI1394_IsoXmitIntEventClear);
        reg_write(ohci, OHCI1394_IsoXmitIntEventClear, iso_event);
 
        while (iso_event) {