hw/audio/pcspk: Add I/O trace events
Allows to see how the guest interacts with the device. Signed-off-by: Bernhard Beschow <shentey@gmail.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20251019210303.104718-3-shentey@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
be2f66e07a
commit
6b670b1b96
2 changed files with 13 additions and 1 deletions
|
|
@ -34,6 +34,7 @@
|
|||
#include "hw/audio/pcspk.h"
|
||||
#include "qapi/error.h"
|
||||
#include "qom/object.h"
|
||||
#include "trace.h"
|
||||
|
||||
#define PCSPK_BUF_LEN 1792
|
||||
#define PCSPK_SAMPLE_RATE 32000
|
||||
|
|
@ -137,13 +138,18 @@ static uint64_t pcspk_io_read(void *opaque, hwaddr addr,
|
|||
{
|
||||
PCSpkState *s = opaque;
|
||||
PITChannelInfo ch;
|
||||
uint8_t val;
|
||||
|
||||
pit_get_channel_info(s->pit, 2, &ch);
|
||||
|
||||
s->dummy_refresh_clock ^= (1 << 4);
|
||||
|
||||
return ch.gate | (s->data_on << 1) | s->dummy_refresh_clock |
|
||||
val = ch.gate | (s->data_on << 1) | s->dummy_refresh_clock |
|
||||
(ch.out << 5);
|
||||
|
||||
trace_pcspk_io_read(s->iobase, val);
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
static void pcspk_io_write(void *opaque, hwaddr addr, uint64_t val,
|
||||
|
|
@ -152,6 +158,8 @@ static void pcspk_io_write(void *opaque, hwaddr addr, uint64_t val,
|
|||
PCSpkState *s = opaque;
|
||||
const int gate = val & 1;
|
||||
|
||||
trace_pcspk_io_write(s->iobase, val);
|
||||
|
||||
s->data_on = (val >> 1) & 1;
|
||||
pit_set_gate(s->pit, 2, gate);
|
||||
if (s->voice) {
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@ hda_audio_format(const char *stream, int chan, const char *fmt, int freq) "st %s
|
|||
hda_audio_adjust(const char *stream, int pos) "st %s, pos %d"
|
||||
hda_audio_overrun(const char *stream) "st %s"
|
||||
|
||||
# pcspk.c
|
||||
pcspk_io_read(uint16_t addr, uint8_t val) "[0x%"PRIx16"] -> 0x%"PRIx8
|
||||
pcspk_io_write(uint16_t addr, uint8_t val) "[0x%"PRIx16"] <- 0x%"PRIx8
|
||||
|
||||
#via-ac97.c
|
||||
via_ac97_codec_write(uint8_t addr, uint16_t val) "0x%x <- 0x%x"
|
||||
via_ac97_sgd_fetch(uint32_t curr, uint32_t addr, char stop, char eol, char flag, uint32_t len) "curr=0x%x addr=0x%x %c%c%c len=%d"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue