diff options
Diffstat (limited to 'drivers/firewire/ohci.c')
-rw-r--r-- | drivers/firewire/ohci.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index 8ebccda94df9..525848f71c34 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -490,6 +490,13 @@ static int ohci_update_phy_reg(struct fw_card *card, int addr, | |||
490 | if (err < 0) | 490 | if (err < 0) |
491 | return err; | 491 | return err; |
492 | 492 | ||
493 | /* | ||
494 | * The interrupt status bits are cleared by writing a one bit. | ||
495 | * Avoid clearing them unless explicitly requested in set_bits. | ||
496 | */ | ||
497 | if (addr == 5) | ||
498 | clear_bits |= PHY_INT_STATUS_BITS; | ||
499 | |||
493 | old = (old & ~clear_bits) | set_bits; | 500 | old = (old & ~clear_bits) | set_bits; |
494 | reg_write(ohci, OHCI1394_PhyControl, | 501 | reg_write(ohci, OHCI1394_PhyControl, |
495 | OHCI1394_PhyControl_Write(addr, old)); | 502 | OHCI1394_PhyControl_Write(addr, old)); |