[alsa-devel] [PATCH] ALSA: cmipci: Allow disabling MPU port via module option
Clemens Ladisch
clemens at ladisch.de
Tue Dec 17 17:18:54 CET 2019
Takashi Iwai wrote:
> Patrick May reported that his sound card with CMI8378 chip causes a
> crash / reboot when accessing the MIDI port that isn't actually
> present on the board. [...]
> Although fixing the unexpected reboot would be the best solution, it's
> not so trivial to identify the cause.
There was a similar problem in the CMI8788 driver:
https://git.kernel.org/linus/f1bc07af9a9e
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4496 (does this still exist?)
When reading a register repeatedly, the chip sometimes does not
complete the PCI transaction. Apparently, mainboard PCI chipsets
ignore this error, but PCIe/PCI bridges generate a machine check
exception in this case.
When writing MIDI data to a MPU-401-like device, the driver regularly
polls the status register. I expect that this will blow up with any
C-Media chip on a card with a PCIe/PCI bridge, regardless of whether
a MIDI port exists.
(I wonder if this can be triggered with snd_pcm_avail() in a loop.
Maybe it happens only for byte accesses, or nobody has yet found out.)
> As default, the MPU port is still enabled
It might be a good idea to disable it by default if the parent
bridge is an ASM1083.
Regards,
Clemens
More information about the Alsa-devel
mailing list