diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-11 13:21:34 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-11-11 13:21:34 -0500 |
commit | 8d3de01cfa37bfcf54f1d84eafb7db8530b74199 (patch) | |
tree | 678dd70a76d7a50df4da9a37a59f09957e4a7ddd | |
parent | 842cf0b9525813b084720a82d0d3aabc750b7ccc (diff) | |
parent | 100ceb66d5c40cc0c7018e06a9474302470be73c (diff) |
Merge tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394
Pull firewire fix from Stefan Richter:
"Work around JMicron initialization quirk, which ffected isochronous
transmission, e.g. audio via FFADO or ALSA"
* tag 'firewire-update' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394:
firewire: ohci: fix JMicron JMB38x IT context discovery
-rw-r--r-- | drivers/firewire/ohci.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index f51d376d10ba..c2f5117fd8cb 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -3675,6 +3675,11 @@ static int pci_probe(struct pci_dev *dev, | |||
3675 | 3675 | ||
3676 | reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0); | 3676 | reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0); |
3677 | ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet); | 3677 | ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet); |
3678 | /* JMicron JMB38x often shows 0 at first read, just ignore it */ | ||
3679 | if (!ohci->it_context_support) { | ||
3680 | ohci_notice(ohci, "overriding IsoXmitIntMask\n"); | ||
3681 | ohci->it_context_support = 0xf; | ||
3682 | } | ||
3678 | reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0); | 3683 | reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0); |
3679 | ohci->it_context_mask = ohci->it_context_support; | 3684 | ohci->it_context_mask = ohci->it_context_support; |
3680 | ohci->n_it = hweight32(ohci->it_context_mask); | 3685 | ohci->n_it = hweight32(ohci->it_context_mask); |