diff options
author | Vijendar Mukunda <Vijendar.Mukunda@amd.com> | 2023-06-26 16:23:54 +0530 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2023-06-26 13:29:01 +0100 |
commit | 85aeab362201cf52c34cd429e4f6c75a0b42f9a3 (patch) | |
tree | 6727c5354668c09549681674fc38d955ac918fa0 /sound | |
parent | 68a653ab864ccf7874fe622f3af20fe7345c39be (diff) | |
download | linux-stable-85aeab362201cf52c34cd429e4f6c75a0b42f9a3.tar.gz linux-stable-85aeab362201cf52c34cd429e4f6c75a0b42f9a3.tar.bz2 linux-stable-85aeab362201cf52c34cd429e4f6c75a0b42f9a3.zip |
ASoC: amd: acp: fix for invalid dai id handling in acp_get_byte_count()
For invalid dai id, instead of returning -EINVAL
return bytes count as zero in acp_get_byte_count() function.
Fixes: 623621a9f9e1 ("ASoC: amd: Add common framework to support I2S on ACP SOC")
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://lore.kernel.org/r/20230626105356.2580125-6-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/amd/acp/amd.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 5f2119f42271..12a176a50fd6 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -173,7 +173,7 @@ int snd_amd_acp_find_config(struct pci_dev *pci); static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int direction) { - u64 byte_count, low = 0, high = 0; + u64 byte_count = 0, low = 0, high = 0; if (direction == SNDRV_PCM_STREAM_PLAYBACK) { switch (dai_id) { @@ -191,7 +191,7 @@ static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int break; default: dev_err(adata->dev, "Invalid dai id %x\n", dai_id); - return -EINVAL; + goto POINTER_RETURN_BYTES; } } else { switch (dai_id) { @@ -213,12 +213,13 @@ static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int break; default: dev_err(adata->dev, "Invalid dai id %x\n", dai_id); - return -EINVAL; + goto POINTER_RETURN_BYTES; } } /* Get 64 bit value from two 32 bit registers */ byte_count = (high << 32) | low; +POINTER_RETURN_BYTES: return byte_count; } |