From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: Laurent Vivier <lvivier@redhat.com>,
Eduardo Habkost <eduardo@habkost.net>,
John Snow <jsnow@redhat.com>, Fabiano Rosas <farosas@suse.de>,
Laurent Vivier <laurent@vivier.eu>,
kvm@vger.kernel.org, Zhao Liu <zhao1.liu@intel.com>,
qemu-trivial@nongnu.org,
Marcel Apfelbaum <marcel.apfelbaum@gmail.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
Sunil Muthuswamy <sunilmut@microsoft.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Michael Tokarev <mjt@tls.msk.ru>,
Richard Henderson <richard.henderson@linaro.org>,
qemu-block@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Bernhard Beschow <shentey@gmail.com>
Subject: [PATCH 2/8] hw/audio/pcspk: Add I/O trace events
Date: Fri, 17 Oct 2025 13:33:32 +0200 [thread overview]
Message-ID: <20251017113338.7953-3-shentey@gmail.com> (raw)
In-Reply-To: <20251017113338.7953-1-shentey@gmail.com>
Allows to see how the guest interacts with the device.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
hw/audio/pcspk.c | 10 +++++++++-
hw/audio/trace-events | 4 ++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/hw/audio/pcspk.c b/hw/audio/pcspk.c
index a419161b5b..f8020593b0 100644
--- a/hw/audio/pcspk.c
+++ b/hw/audio/pcspk.c
@@ -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) {
diff --git a/hw/audio/trace-events b/hw/audio/trace-events
index b8ef572767..30f5921545 100644
--- a/hw/audio/trace-events
+++ b/hw/audio/trace-events
@@ -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"
--
2.51.1.dirty
next prev parent reply other threads:[~2025-10-17 11:37 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-17 11:33 [PATCH 0/8] Trivial patches, mostly PC-related Bernhard Beschow
2025-10-17 11:33 ` [PATCH 1/8] hw/timer/i8254: Add I/O trace events Bernhard Beschow
2025-10-17 11:33 ` Bernhard Beschow [this message]
2025-10-17 11:33 ` [PATCH 3/8] hw/rtc/mc146818rtc: Convert CMOS_DPRINTF() into " Bernhard Beschow
2025-10-17 11:33 ` [PATCH 4/8] hw/rtc/mc146818rtc: Use ARRAY_SIZE macro Bernhard Beschow
2025-10-17 11:33 ` [PATCH 5/8] hw/rtc/mc146818rtc: Assert correct usage of mc146818rtc_set_cmos_data() Bernhard Beschow
2025-10-17 11:33 ` [PATCH 6/8] hw/i386/apic: Prefer APICCommonState over DeviceState Bernhard Beschow
2025-10-17 11:33 ` [PATCH 7/8] hw/ide/ide-internal: Move dma_buf_commit() into ide "namespace" Bernhard Beschow
2025-10-17 11:33 ` [PATCH 8/8] tests/qtest/ds1338-test: Reuse from_bcd() Bernhard Beschow
2025-10-21 20:57 ` Fabiano Rosas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251017113338.7953-3-shentey@gmail.com \
--to=shentey@gmail.com \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=jsnow@redhat.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=laurent@vivier.eu \
--cc=lvivier@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mjt@tls.msk.ru \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sunilmut@microsoft.com \
--cc=zhao1.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).