]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: soc-acpi: introduce new 'machine check' callback
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Wed, 16 Oct 2024 10:23:29 +0000 (18:23 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 17 Oct 2024 17:42:14 +0000 (18:42 +0100)
The existing machine_quirk() returns a pointer to a soc_acpi_mach
structure.
For SoundWire/SDCA support, we need a slightly different
functionality where a quirk function either validates or NACKs an
initial selection, based on additional firmware/DMI information.

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Link: https://patch.msgid.link/20241016102333.294448-8-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc-acpi.h

index ac7f9e791ee183ea4e868d787644aecd4735cec7..72e371a217676b1375a0256309a0f8fd04589bf7 100644 (file)
@@ -185,6 +185,10 @@ struct snd_soc_acpi_link_adr {
  * ACPI ID alone is not sufficient, wrong or misleading
  * @quirk_data: data used to uniquely identify a machine, usually a list of
  * audio codecs whose presence if checked with ACPI
+ * @machine_check: pointer to quirk function. The functionality is similar to
+ * the use of @machine_quirk, except that the return value is a boolean: the intent
+ * is to skip a machine if the additional hardware/firmware verification invalidates
+ * the initial selection in the snd_soc_acpi_mach table.
  * @pdata: intended for platform data or machine specific-ops. This structure
  *  is not constant since this field may be updated at run-time
  * @sof_tplg_filename: Sound Open Firmware topology file name, if enabled
@@ -203,6 +207,7 @@ struct snd_soc_acpi_mach {
        const char *board;
        struct snd_soc_acpi_mach * (*machine_quirk)(void *arg);
        const void *quirk_data;
+       bool (*machine_check)(void *arg);
        void *pdata;
        struct snd_soc_acpi_mach_params mach_params;
        const char *sof_tplg_filename;