asoc: common: modify the incorrect comparsion

In case of error scenario for get_tdm_clk_id/get_mi2s_clk_id, storing the
return value into uint32 clk_id which is always positive and does not handle
the invalid clk ids failure. So modify the incorrect comparsion.

Change-Id: I1e606709cd3c11a24a39679bcee638a045804961
Signed-off-by: Prasad Kumpatla <pkumpatl@codeaurora.org>
This commit is contained in:
Prasad Kumpatla
2021-10-07 15:21:30 +05:30
committed by Gerrit - the friendly Code Review server
parent ffbb0c4a5b
commit fd473434d7

View File

@@ -278,38 +278,37 @@ static bool is_fractional_sample_rate(unsigned int sample_rate)
static int get_mi2s_clk_id(int index)
{
int clk_id;
int clk_id = -EINVAL;
switch(index) {
case PRI_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_PRI_MI2S_IBIT;
break;
case SEC_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_SEP_MI2S_IBIT;
break;
case TER_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_TER_MI2S_IBIT;
break;
case QUAT_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_QUAD_MI2S_IBIT;
break;
case QUIN_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_QUI_MI2S_IBIT;
break;
case SEN_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_SEN_MI2S_IBIT;
break;
default:
pr_err("%s: Invalid interface index: %d\n", __func__, index);
clk_id = -EINVAL;
}
pr_debug("%s: clk id: %d\n", __func__, clk_id);
return clk_id;
switch(index) {
case PRI_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_PRI_MI2S_IBIT;
break;
case SEC_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_SEP_MI2S_IBIT;
break;
case TER_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_TER_MI2S_IBIT;
break;
case QUAT_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_QUAD_MI2S_IBIT;
break;
case QUIN_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_QUI_MI2S_IBIT;
break;
case SEN_MI2S_TDM_AUXPCM:
clk_id = CLOCK_ID_SEN_MI2S_IBIT;
break;
default:
pr_err("%s: Invalid interface index: %d\n", __func__, index);
}
pr_debug("%s: clk id: %d\n", __func__, clk_id);
return clk_id;
}
static int get_tdm_clk_id(int index)
{
int clk_id;
int clk_id = -EINVAL;
switch(index) {
case PRI_MI2S_TDM_AUXPCM:
@@ -332,7 +331,6 @@ static int get_tdm_clk_id(int index)
break;
default:
pr_err("%s: Invalid interface index: %d\n", __func__, index);
clk_id = -EINVAL;
}
pr_debug("%s: clk id: %d\n", __func__, clk_id);
return clk_id;
@@ -401,14 +399,11 @@ int msm_common_snd_hw_params(struct snd_pcm_substream *substream,
slots = pdata->tdm_max_slots;
rate = params_rate(params);
intf_clk_cfg.clk_id = get_tdm_clk_id(index);
if (intf_clk_cfg.clk_id < 0) {
ret = -EINVAL;
pr_err("%s: Invalid tdm clk id %d", __func__,
intf_clk_cfg.clk_id);
ret = get_tdm_clk_id(index);
if ( ret < 0)
goto done;
}
intf_clk_cfg.clk_id = ret;
intf_clk_cfg.clk_freq_in_hz = rate * slot_width * slots;
intf_clk_cfg.clk_attri = pdata->tdm_clk_attribute[index];
intf_clk_cfg.clk_root = 0;
@@ -432,13 +427,11 @@ int msm_common_snd_hw_params(struct snd_pcm_substream *substream,
}
} else if ((strnstr(stream_name, "MI2S", strlen(stream_name)))) {
intf_clk_cfg.clk_id = get_mi2s_clk_id(index);
if (intf_clk_cfg.clk_id < 0) {
ret = -EINVAL;
pr_err("%s: Invalid mi2s clk id %d", __func__,
intf_clk_cfg.clk_id);
ret = get_mi2s_clk_id(index);
if (ret < 0)
goto done;
}
intf_clk_cfg.clk_id = ret;
rate = params_rate(params);
switch (params_format(params)) {
case SNDRV_PCM_FORMAT_S24_LE:
@@ -554,21 +547,23 @@ void msm_common_snd_shutdown(struct snd_pcm_substream *substream)
atomic_dec(&pdata->lpass_intf_clk_ref_cnt[index]);
if (atomic_read(&pdata->lpass_intf_clk_ref_cnt[index]) == 0) {
if ((strnstr(stream_name, "TDM", strlen(stream_name)))) {
intf_clk_cfg.clk_id = get_tdm_clk_id(index);
pr_debug("%s: Disable tdm clock ID: %d\n",
__func__, intf_clk_cfg.clk_id);
ret = audio_prm_set_lpass_clk_cfg(&intf_clk_cfg, 0);
if (ret < 0)
pr_err("%s: prm tdm clk cfg set failed ret %d\n",
__func__, ret);
} else if((strnstr(stream_name, "MI2S", strlen(stream_name)))) {
intf_clk_cfg.clk_id = get_mi2s_clk_id(index);
pr_debug("%s: Disable mi2s clock ID: %d\n",
__func__, intf_clk_cfg.clk_id);
ret = audio_prm_set_lpass_clk_cfg(&intf_clk_cfg, 0);
if (ret < 0)
pr_err("%s: prm mi2s clk cfg disable failed ret %d\n",
ret = get_tdm_clk_id(index);
if (ret > 0) {
intf_clk_cfg.clk_id = ret;
ret = audio_prm_set_lpass_clk_cfg(&intf_clk_cfg, 0);
if (ret < 0)
pr_err("%s: prm tdm clk cfg set failed ret %d\n",
__func__, ret);
}
} else if((strnstr(stream_name, "MI2S", strlen(stream_name)))) {
ret = get_mi2s_clk_id(index);
if (ret > 0) {
intf_clk_cfg.clk_id = ret;
ret = audio_prm_set_lpass_clk_cfg(&intf_clk_cfg, 0);
if (ret < 0)
pr_err("%s: prm mi2s clk cfg disable failed ret %d\n",
__func__, ret);
}
} else {
pr_err("%s: unsupported stream name: %s\n",
__func__, stream_name);