From bb5e0e9d93a33ed90214c7c5edf9e578d67cecaf Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Wed, 5 Jun 2019 15:24:39 +0800 Subject: [PATCH] asoc: kona: Fix to apply wsa8810 gain settings Update wsa aux codec matching logic in machine driver to apply proper gain settings for wsa8810 variant. Add null check for aux component name to avoid dereference. Change-Id: Ie332f8e37a2d6b7a250fe299df91fa9cf9d7636b Signed-off-by: Meng Wang --- asoc/kona.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/asoc/kona.c b/asoc/kona.c index be944d3e2ffa..075446e24cce 100644 --- a/asoc/kona.c +++ b/asoc/kona.c @@ -5003,16 +5003,17 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd) __func__, rtd->card->num_aux_devs); if (rtd->card->num_aux_devs && !list_empty(&rtd->card->component_dev_list)) { - aux_comp = list_first_entry( - &rtd->card->component_dev_list, - struct snd_soc_component, - card_aux_list); - if (!strcmp(aux_comp->name, WSA8810_NAME_1) || - !strcmp(aux_comp->name, WSA8810_NAME_2)) { - wsa_macro_set_spkr_mode(component, + list_for_each_entry(aux_comp, + &rtd->card->aux_comp_list, + card_aux_list) { + if (aux_comp->name != NULL && ( + !strcmp(aux_comp->name, WSA8810_NAME_1) || + !strcmp(aux_comp->name, WSA8810_NAME_2))) { + wsa_macro_set_spkr_mode(component, WSA_MACRO_SPKR_MODE_1); - wsa_macro_set_spkr_gain_offset(component, - WSA_MACRO_GAIN_OFFSET_M1P5_DB); + wsa_macro_set_spkr_gain_offset(component, + WSA_MACRO_GAIN_OFFSET_M1P5_DB); + } } bolero_set_port_map(component, ARRAY_SIZE(sm_port_map), sm_port_map);