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
This commit is contained in:
@@ -3675,6 +3675,11 @@ static int pci_probe(struct pci_dev *dev,
|
|||||||
|
|
||||||
reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0);
|
reg_write(ohci, OHCI1394_IsoXmitIntMaskSet, ~0);
|
||||||
ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet);
|
ohci->it_context_support = reg_read(ohci, OHCI1394_IsoXmitIntMaskSet);
|
||||||
|
/* JMicron JMB38x often shows 0 at first read, just ignore it */
|
||||||
|
if (!ohci->it_context_support) {
|
||||||
|
ohci_notice(ohci, "overriding IsoXmitIntMask\n");
|
||||||
|
ohci->it_context_support = 0xf;
|
||||||
|
}
|
||||||
reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0);
|
reg_write(ohci, OHCI1394_IsoXmitIntMaskClear, ~0);
|
||||||
ohci->it_context_mask = ohci->it_context_support;
|
ohci->it_context_mask = ohci->it_context_support;
|
||||||
ohci->n_it = hweight32(ohci->it_context_mask);
|
ohci->n_it = hweight32(ohci->it_context_mask);
|
||||||
|
|||||||
Reference in New Issue
Block a user