Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: SOF: Separate the tokens for input and output pin index

Using the same token ID for both input and output format pin index
results in collisions and incorrect pin index getting parsed from
topology.

Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com
Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com
Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com
Reviewed-by: Paul Olaru <paul.olaru@oss.nxp.com
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com
Link: https://lore.kernel.org/r/20230515104403.32207-1-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org

authored by

Ranjani Sridharan and committed by
Mark Brown
be3c2153 aa70f36f

+4 -3
+2 -1
include/uapi/sound/sof/tokens.h
··· 183 183 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_INTERLEAVING_STYLE 1906 184 184 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_FMT_CFG 1907 185 185 #define SOF_TKN_CAVS_AUDIO_FORMAT_IN_SAMPLE_TYPE 1908 186 - #define SOF_TKN_CAVS_AUDIO_FORMAT_PIN_INDEX 1909 186 + #define SOF_TKN_CAVS_AUDIO_FORMAT_INPUT_PIN_INDEX 1909 187 187 /* intentional token numbering discontinuity, reserved for future use */ 188 188 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_RATE 1930 189 189 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_BIT_DEPTH 1931 ··· 194 194 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_INTERLEAVING_STYLE 1936 195 195 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_FMT_CFG 1937 196 196 #define SOF_TKN_CAVS_AUDIO_FORMAT_OUT_SAMPLE_TYPE 1938 197 + #define SOF_TKN_CAVS_AUDIO_FORMAT_OUTPUT_PIN_INDEX 1939 197 198 /* intentional token numbering discontinuity, reserved for future use */ 198 199 #define SOF_TKN_CAVS_AUDIO_FORMAT_IBS 1970 199 200 #define SOF_TKN_CAVS_AUDIO_FORMAT_OBS 1971
+2 -2
sound/soc/sof/ipc4-topology.c
··· 59 59 audio_fmt.interleaving_style)}, 60 60 {SOF_TKN_CAVS_AUDIO_FORMAT_IN_FMT_CFG, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 61 61 offsetof(struct sof_ipc4_pin_format, audio_fmt.fmt_cfg)}, 62 - {SOF_TKN_CAVS_AUDIO_FORMAT_PIN_INDEX, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 62 + {SOF_TKN_CAVS_AUDIO_FORMAT_INPUT_PIN_INDEX, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 63 63 offsetof(struct sof_ipc4_pin_format, pin_index)}, 64 64 {SOF_TKN_CAVS_AUDIO_FORMAT_IBS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 65 65 offsetof(struct sof_ipc4_pin_format, buffer_size)}, ··· 79 79 audio_fmt.interleaving_style)}, 80 80 {SOF_TKN_CAVS_AUDIO_FORMAT_OUT_FMT_CFG, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 81 81 offsetof(struct sof_ipc4_pin_format, audio_fmt.fmt_cfg)}, 82 - {SOF_TKN_CAVS_AUDIO_FORMAT_PIN_INDEX, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 82 + {SOF_TKN_CAVS_AUDIO_FORMAT_OUTPUT_PIN_INDEX, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 83 83 offsetof(struct sof_ipc4_pin_format, pin_index)}, 84 84 {SOF_TKN_CAVS_AUDIO_FORMAT_OBS, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32, 85 85 offsetof(struct sof_ipc4_pin_format, buffer_size)},