qemu/hw/audio
Philippe Mathieu-Daudé be5a8cf347 hw/audio/intel-hda: Do not ignore DMA overrun errors
Per the "High Definition Audio Specification" manual (rev. 1.0a),
section "3.3.30 Offset 5Dh: RIRBSTS - RIRB Status":

  Response Overrun Interrupt Status (RIRBOIS):

  Hardware sets this bit to a 1 when an overrun occurs in the RIRB.
  An interrupt may be generated if the Response Overrun Interrupt
  Control bit is set.

  This bit will be set if the RIRB DMA engine is not able to write
  the incoming responses to memory before additional incoming
  responses overrun the internal FIFO.

  When hardware detects an overrun, it will drop the responses which
  overrun the buffer and set the RIRBOIS status bit to indicate the
  error condition. Optionally, if the RIRBOIC is set, the hardware
  will also generate an error to alert software to the problem.

QEMU emulates the DMA engine with the stl_le_pci_dma() calls. This
function returns a MemTxResult indicating whether the DMA access
was successful.
Handle any MemTxResult error as "DMA engine is not able to write the
incoming responses to memory" and raise the Overrun Interrupt flag
when this case occurs.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211218160912.1591633-2-philmd@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2022-03-21 10:10:58 +01:00
..
ac97.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
adlib.c hw/audio/adlib: Remove unused variable in adlib_callback 2021-07-26 07:07:07 -10:00
cs4231.c hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
cs4231a.c hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
es1370.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
fmopl.c hw/audio/fmopl: fix segmentation fault 2020-03-25 09:55:40 +01:00
fmopl.h fmops: fix off-by-one in AR_TABLE and DR_TABLE array size 2018-11-26 11:15:32 +01:00
gus.c hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
gusemu.h audio: GUSsample is int16_t 2017-05-04 09:16:05 +02:00
gusemu_hal.c hw/audio/gus: Fix registers 32-bit access 2020-06-19 11:20:09 +02:00
gusemu_mixer.c hw/audio/gus: Fix registers 32-bit access 2020-06-19 11:20:09 +02:00
gustate.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
hda-codec-common.h hda-codec: make mixemu selectable at runtime 2013-09-24 10:29:34 +02:00
hda-codec.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
intel-hda-defs.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
intel-hda.c hw/audio/intel-hda: Do not ignore DMA overrun errors 2022-03-21 10:10:58 +01:00
intel-hda.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
Kconfig hw: Move MARVELL_88W8618 Kconfig from audio/ to arm/ 2022-01-20 11:47:52 +00:00
lm4549.c Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
lm4549.h Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
marvell_88w8618.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
meson.build Drop the deprecated lm32 target 2021-05-12 18:20:25 +02:00
pcspk.c Remove unnecessary minimum_version_id_old fields 2022-01-28 15:38:23 +01:00
pl041.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pl041.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
pl041.hx hw: move target-independent files to subdirectories 2013-04-08 18:13:12 +02:00
sb16.c hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
soundhw.c audio: add deprecated_register_soundhw 2020-07-06 17:01:11 +02:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
via-ac97.c audio/via-ac97: Simplify code and set user_creatable to false 2021-01-04 23:24:44 +01:00
wm8750.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00