On Wed, Jan 22, 2020 at 2:50 PM Pierre-Louis Bossart < pierre-louis.bossart@linux.intel.com> wrote:
Kai and Ranjani, do you think this impacts SOF as well? Or does our BE override somehow suppresses the problem?
Hi Pierre/Cezary,
SOF does have the same problem too but I thought we're allowed to have
dai
links without platform component? An alternative to adding the platform component would be to do something like below.
Thanks, Ranjani diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c index 11eaee9ae41f..dacf8014b870 100644 --- a/sound/soc/intel/boards/skl_hda_dsp_generic.c +++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c @@ -112,6 +112,7 @@ static char hda_soc_components[30];
static int skl_hda_fill_card_info(struct snd_soc_acpi_mach_params *mach_params) {
struct snd_soc_dai_link_component *platform; struct snd_soc_card *card = &hda_soc_card; struct snd_soc_dai_link *dai_link; u32 codec_count, codec_mask;
@@ -148,7 +149,8 @@ static int skl_hda_fill_card_info(struct snd_soc_acpi_mach_params *mach_params) card->num_dapm_routes = num_route;
for_each_card_prelinks(card, i, dai_link)
dai_link->platforms->name = mach_params->platform;
for_each_link_platforms(dai_link, i, platform)
platform->name = mach_params->platform;
we already do this indirectly with:
skl_hda_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *link) { link->platforms->name = ctx->platform_name; <<<
I suspect the issue is that the plaforms part is not allocated. The 8-byte out of bounds is not a string, it looks like a pointer stored in the wrong location.
skl_hda_fill_card_info() would be called before skl_hda_add_dai_link(). But yes, it should be fixed here as well or as suggested in the patch, we should set the platform component to prevent this error.
Thanks, Ranjani