ASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev()
BugLink: https://bugs.launchpad.net/bugs/2089884 [ Upstream commit 14e91ddd5c02d8c3e5a682ebfa0546352b459911 ] The code seems mostly copy-pasted, with some machine drivers forgetting to test if the 'adev' result is NULL. Add this check when missing, and use -ENOENT consistently as an error code. Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/alsa-devel/918944d2-3d00-465e-a9d1-5d57fc966113@stanley.mountain/T/#u Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://patch.msgid.link/20240827123215.258859-4-yung-chuan.liao@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org> Signed-off-by: Koichiro Den <koichiro.den@canonical.com> Signed-off-by: Roxana Nicolescu <roxana.nicolescu@canonical.com>
This commit is contained in:
committed by
Mehmet Basaran
parent
905da999c9
commit
45aad6c35c
@@ -255,7 +255,11 @@ static int snd_byt_cht_cx2072x_probe(struct platform_device *pdev)
|
||||
snprintf(codec_name, sizeof(codec_name), "i2c-%s",
|
||||
acpi_dev_name(adev));
|
||||
byt_cht_cx2072x_dais[dai_index].codecs->name = codec_name;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
acpi_dev_put(adev);
|
||||
|
||||
/* override platform name, if required */
|
||||
|
||||
@@ -258,7 +258,11 @@ static int bytcht_da7213_probe(struct platform_device *pdev)
|
||||
snprintf(codec_name, sizeof(codec_name),
|
||||
"i2c-%s", acpi_dev_name(adev));
|
||||
dailink[dai_index].codecs->name = codec_name;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
acpi_dev_put(adev);
|
||||
|
||||
/* override platform name, if required */
|
||||
|
||||
@@ -562,7 +562,7 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
|
||||
byt_cht_es8316_dais[dai_index].codecs->name = codec_name;
|
||||
} else {
|
||||
dev_err(dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENXIO;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
codec_dev = acpi_get_first_physical_node(adev);
|
||||
|
||||
@@ -1693,7 +1693,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
|
||||
byt_rt5640_dais[dai_index].codecs->name = byt_rt5640_codec_name;
|
||||
} else {
|
||||
dev_err(dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENXIO;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
codec_dev = acpi_get_first_physical_node(adev);
|
||||
|
||||
@@ -926,7 +926,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
|
||||
byt_rt5651_dais[dai_index].codecs->name = byt_rt5651_codec_name;
|
||||
} else {
|
||||
dev_err(dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENXIO;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
codec_dev = acpi_get_first_physical_node(adev);
|
||||
|
||||
@@ -582,7 +582,11 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
|
||||
snprintf(cht_rt5645_codec_name, sizeof(cht_rt5645_codec_name),
|
||||
"i2c-%s", acpi_dev_name(adev));
|
||||
cht_dailink[dai_index].codecs->name = cht_rt5645_codec_name;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
/* acpi_get_first_physical_node() returns a borrowed ref, no need to deref */
|
||||
codec_dev = acpi_get_first_physical_node(adev);
|
||||
acpi_dev_put(adev);
|
||||
|
||||
@@ -479,7 +479,11 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
|
||||
snprintf(drv->codec_name, sizeof(drv->codec_name),
|
||||
"i2c-%s", acpi_dev_name(adev));
|
||||
cht_dailink[dai_index].codecs->name = drv->codec_name;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
acpi_dev_put(adev);
|
||||
|
||||
/* Use SSP0 on Bay Trail CR devices */
|
||||
|
||||
@@ -681,7 +681,7 @@ static int sof_es8336_probe(struct platform_device *pdev)
|
||||
dai_links[0].codecs->dai_name = "ES8326 HiFi";
|
||||
} else {
|
||||
dev_err(dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENXIO;
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
codec_dev = acpi_get_first_physical_node(adev);
|
||||
|
||||
@@ -270,7 +270,11 @@ static int sof_wm8804_probe(struct platform_device *pdev)
|
||||
snprintf(codec_name, sizeof(codec_name),
|
||||
"%s%s", "i2c-", acpi_dev_name(adev));
|
||||
dailink[dai_index].codecs->name = codec_name;
|
||||
} else {
|
||||
dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
acpi_dev_put(adev);
|
||||
|
||||
snd_soc_card_set_drvdata(card, ctx);
|
||||
|
||||
Reference in New Issue
Block a user