From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: <broonie@kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <patches@opensource.cirrus.com>,
<linux-sound@vger.kernel.org>
Subject: [PATCH 00/12] firmware: cirrus: Add KUnit tests for cs_dsp
Date: Thu, 12 Dec 2024 14:37:13 +0000 [thread overview]
Message-ID: <20241212143725.1381013-1-rf@opensource.cirrus.com> (raw)
This series adds KUnit tests for the cs_dsp module.
Most of the functionality in cs_dsp is for downloading firmware to
DSP memory and interacting with "control" words defined in that
memory. This doesn't require any emulation of running firmware,
because it is only reading and writing registers. So the testing can
be done using a dummy regmap. The way this is used to perform testing
is described in more detail in the commit message for each test.
ADSP1 is not tested because this was only used by the WM2200 codec,
a long-obsolete part that was discontinued in 2015.
Richard Fitzgerald (12):
firmware: cs_dsp: Add mock regmap for KUnit testing
firmware: cs_dsp: Add mock DSP memory map for KUnit testing
firmware: cs_dsp: Add mock wmfw file generator for KUnit testing
firmware: cs_dsp: Add mock bin file generator for KUnit testing
firmware: cs_dsp: Add KUnit testing of bin file download
firmware: cs_dsp: Add KUnit testing of wmfw download
firmware: cs_dsp: Add KUnit testing of control parsing
firmware: cs_dsp: Add KUnit testing of control cache
firmware: cs_dsp: Add KUnit testing of control read/write
firmware: cs_dsp: Add KUnit testing of bin error cases
firmware: cs_dsp: Add KUnit testing of wmfw error cases
firmware: cs_dsp: Add KUnit testing of client callbacks
MAINTAINERS | 4 +-
drivers/firmware/cirrus/Kconfig | 20 +
drivers/firmware/cirrus/Makefile | 2 +
drivers/firmware/cirrus/test/Makefile | 23 +
.../firmware/cirrus/test/cs_dsp_mock_bin.c | 199 +
.../cirrus/test/cs_dsp_mock_mem_maps.c | 751 ++++
.../firmware/cirrus/test/cs_dsp_mock_regmap.c | 367 ++
.../firmware/cirrus/test/cs_dsp_mock_utils.c | 13 +
.../firmware/cirrus/test/cs_dsp_mock_wmfw.c | 473 +++
.../firmware/cirrus/test/cs_dsp_test_bin.c | 2557 +++++++++++++
.../cirrus/test/cs_dsp_test_bin_error.c | 600 +++
.../cirrus/test/cs_dsp_test_callbacks.c | 688 ++++
.../cirrus/test/cs_dsp_test_control_cache.c | 3282 +++++++++++++++++
.../cirrus/test/cs_dsp_test_control_parse.c | 1851 ++++++++++
.../cirrus/test/cs_dsp_test_control_rw.c | 2669 ++++++++++++++
.../firmware/cirrus/test/cs_dsp_test_wmfw.c | 2211 +++++++++++
.../cirrus/test/cs_dsp_test_wmfw_error.c | 1347 +++++++
drivers/firmware/cirrus/test/cs_dsp_tests.c | 14 +
.../linux/firmware/cirrus/cs_dsp_test_utils.h | 160 +
19 files changed, 17229 insertions(+), 2 deletions(-)
create mode 100644 drivers/firmware/cirrus/test/Makefile
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_mock_bin.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_mock_mem_maps.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_mock_regmap.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_mock_utils.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_mock_wmfw.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_bin.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_bin_error.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_callbacks.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_control_cache.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_control_parse.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_control_rw.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_wmfw.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_test_wmfw_error.c
create mode 100644 drivers/firmware/cirrus/test/cs_dsp_tests.c
create mode 100644 include/linux/firmware/cirrus/cs_dsp_test_utils.h
--
2.39.5
next reply other threads:[~2024-12-12 14:37 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-12 14:37 Richard Fitzgerald [this message]
2024-12-12 14:37 ` [PATCH 01/12] firmware: cs_dsp: Add mock regmap for KUnit testing Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 02/12] firmware: cs_dsp: Add mock DSP memory map " Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 03/12] firmware: cs_dsp: Add mock wmfw file generator " Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 04/12] firmware: cs_dsp: Add mock bin " Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 05/12] firmware: cs_dsp: Add KUnit testing of bin file download Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 06/12] firmware: cs_dsp: Add KUnit testing of wmfw download Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 07/12] firmware: cs_dsp: Add KUnit testing of control parsing Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 08/12] firmware: cs_dsp: Add KUnit testing of control cache Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 09/12] firmware: cs_dsp: Add KUnit testing of control read/write Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 10/12] firmware: cs_dsp: Add KUnit testing of bin error cases Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 11/12] firmware: cs_dsp: Add KUnit testing of wmfw " Richard Fitzgerald
2024-12-12 14:37 ` [PATCH 12/12] firmware: cs_dsp: Add KUnit testing of client callbacks Richard Fitzgerald
2024-12-13 18:27 ` [PATCH 00/12] firmware: cirrus: Add KUnit tests for cs_dsp Mark Brown
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=20241212143725.1381013-1-rf@opensource.cirrus.com \
--to=rf@opensource.cirrus.com \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.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