ASoC: Intel: bxt_da7219_max98357a: Fix kernel ops due to COMP_DUMMY change
authorPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Mon, 8 Jan 2024 09:48:41 +0000 (11:48 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 8 Jan 2024 12:29:44 +0000 (12:29 +0000)
The change to avoid dummy components will leave the component name and
dai_name NULL which will cause NULL dereference when trying to access to
it in the machine driver when applying fixups.

Link: https://github.com/thesofproject/linux/pull/4759#issuecomment-1878641868
Fixes: 13f58267cda3 ("ASoC: soc.h: don't create dummy Component via COMP_DUMMY()")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240108094842.28782-2-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bxt_da7219_max98357a.c

index 816fad8c1ff0ef439c8805dfb39edb6bdb3cab2f..540f7a29310a9f8f467af23540332db091a783b9 100644 (file)
@@ -797,6 +797,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                broxton_audio_card.name = "glkda7219max";
                /* Fixup the SSP entries for geminilake */
                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                    BXT_MAXIM_CODEC_DAI)) {
@@ -822,6 +825,9 @@ static int broxton_audio_probe(struct platform_device *pdev)
                        broxton_audio_card.name = "cmlda7219max";
 
                for (i = 0; i < ARRAY_SIZE(broxton_dais); i++) {
+                       if (!broxton_dais[i].codecs->dai_name)
+                               continue;
+
                        /* MAXIM_CODEC is connected to SSP1. */
                        if (!strcmp(broxton_dais[i].codecs->dai_name,
                                        BXT_MAXIM_CODEC_DAI)) {