Unverified Commit af375113 authored by Richard Fitzgerald's avatar Richard Fitzgerald Committed by Mark Brown
Browse files

firmware: cs_dsp: Don't require client to provide a struct cs_dsp_client_ops



A client of cs_dsp does not necessarily need to implement any of the
optional callbacks in struct cs_dsp_client_ops, so allow the client_ops
pointer to be NULL.

This has been done by pointing client_ops at a default empty
cs_dsp_client_ops. It keeps the code cleaner by avoiding having to add
double nested NULL checks everywhere one of these callbacks is called.

Signed-off-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20251128102132.1575177-2-rf@opensource.cirrus.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent a76e1d95
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2329,6 +2329,9 @@ static int cs_dsp_create_name(struct cs_dsp *dsp)
	return 0;
}

static const struct cs_dsp_client_ops cs_dsp_default_client_ops = {
};

static int cs_dsp_common_init(struct cs_dsp *dsp)
{
	int ret;
@@ -2342,6 +2345,9 @@ static int cs_dsp_common_init(struct cs_dsp *dsp)

	mutex_init(&dsp->pwr_lock);

	if (!dsp->client_ops)
		dsp->client_ops = &cs_dsp_default_client_ops;

#ifdef CONFIG_DEBUG_FS
	/* Ensure this is invalid if client never provides a debugfs root */
	dsp->debugfs_root = ERR_PTR(-ENODEV);