diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2022-09-19 13:53:48 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2022-09-19 18:11:45 +0100 |
commit | d136949dd8e2e309dc2f186507486b71cbe9acdb (patch) | |
tree | aa86d76d3b638a920d7e160c3f1385e21a433d88 /sound/soc/sof/sof-priv.h | |
parent | 9ccbc2e12e01b39b804774c3207d2474dd992d95 (diff) | |
download | linux-stable-d136949dd8e2e309dc2f186507486b71cbe9acdb.tar.gz linux-stable-d136949dd8e2e309dc2f186507486b71cbe9acdb.tar.bz2 linux-stable-d136949dd8e2e309dc2f186507486b71cbe9acdb.zip |
ASoC: SOF: add quirk to override topology mclk_id
Some Intel-based platforms rely on a topology file that hard-codes the
use of MCLK0. This is incorrect in 10% of the cases. Rather than
generating yet another set of topology files, this patch adds a kernel
module parameter to override the topology value.
In hindsight, we should never have allowed mclks to be specified in
topology, this is a hardware-level information that should not have
been visible in the topology.
Future patches will try to set this value automagically, e.g. by
parsing the NHLT content.
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://lore.kernel.org/r/20220919115350.43104-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof/sof-priv.h')
-rw-r--r-- | sound/soc/sof/sof-priv.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h index 33165299a20f..de08825915b3 100644 --- a/sound/soc/sof/sof-priv.h +++ b/sound/soc/sof/sof-priv.h @@ -601,6 +601,10 @@ struct snd_sof_dev { /* to protect the ipc_rx_handler_list and dsp_state_handler_list list */ struct mutex client_event_handler_mutex; + /* quirks to override topology values */ + bool mclk_id_override; + u16 mclk_id_quirk; /* same size as in IPC3 definitions */ + void *private; /* core does not touch this */ }; |