[PATCH] ASoC: SOF: relax ABI checks and avoid unnecessary warnings

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Fri Feb 12 09:10:57 CET 2021


On 2/11/2021 6:24 PM, Kai Vehmanen wrote:
> With recent SOF 1.7 pre-releases, kernel has been emitting following
> warnings at probe:
> 
> [10006.645216] sof-audio-pci 0000:00:1f.3: warn: FW ABI is more recent than kernel
> [10006.652137] sof-audio-pci 0000:00:1f.3: warn: topology ABI is more recent than kernel
> 
> The warnings are emitted due to increase of the patch-level in firmware
> mainline (to 3.17.1). But the patch level should not be considered even
> in the strict ABI check, so modify the kernel side logic that makes the
> check and only consider the major.minor components.
> 
> BugLink: https://github.com/thesofproject/linux/issues/2647
> Signed-off-by: Kai Vehmanen <kai.vehmanen at linux.intel.com>
> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> Reviewed-by: Ranjani Sridharan <ranjani.sridharan at linux.intel.com>
> ---
>   sound/soc/sof/ipc.c      | 2 +-
>   sound/soc/sof/topology.c | 2 +-
>   2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
> index 1bc3d6282f16..c2d07b783f60 100644
> --- a/sound/soc/sof/ipc.c
> +++ b/sound/soc/sof/ipc.c
> @@ -798,7 +798,7 @@ int snd_sof_ipc_valid(struct snd_sof_dev *sdev)
>   		return -EINVAL;
>   	}
>   
> -	if (v->abi_version > SOF_ABI_VERSION) {
> +	if (SOF_ABI_VERSION_MINOR(v->abi_version) > SOF_ABI_MINOR) {
>   		if (!IS_ENABLED(CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS)) {
>   			dev_warn(sdev->dev, "warn: FW ABI is more recent than kernel\n");
>   		} else {
> diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
> index d6e1f33eb1e9..10f99620eb31 100644
> --- a/sound/soc/sof/topology.c
> +++ b/sound/soc/sof/topology.c
> @@ -3658,7 +3658,7 @@ static int sof_manifest(struct snd_soc_component *scomp, int index,
>   		return -EINVAL;
>   	}
>   
> -	if (abi_version > SOF_ABI_VERSION) {
> +	if (SOF_ABI_VERSION_MINOR(abi_version) > SOF_ABI_MINOR) {
>   		if (!IS_ENABLED(CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS)) {
>   			dev_warn(scomp->dev, "warn: topology ABI is more recent than kernel\n");
>   		} else {
> 
> base-commit: ec9d68508ff65df1dc24cf8100eb40ddd196c2fd
> 

Shouldn't you also look at major version?
Seems to me like with this check for example 2.1.0 compared to 3.0.0 
will compare 1 and 0 and tell you that you have too new version. Even if 
2 is less than 3.



More information about the Alsa-devel mailing list