ASoC: hdmi-codec: Fix hdmi_of_xlate_dai_name when #sound-dai-cells = <0>
If a DAI specifies "#sound-dai-cells = <0>" in device-tree then hdmi_of_xlate_dai_name() will be called with zero args, which it isn't implemented to cope with. The resulting use of an uninitialised variable for the id will usually result in an error like: asoc-simple-card sound: parse error -11 asoc-simple-card: probe of sound failed with error -11 Fix this by using and id of zero if no arg is provided. Fixes: 9731f82d6016 ("ASoC: hdmi-codec: enable multi probe for same device") Signed-off-by: Jon Medhurst <tixy@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1001354ca3
commit
340327a62c
@ -364,7 +364,12 @@ static int hdmi_of_xlate_dai_name(struct snd_soc_component *component,
|
|||||||
struct of_phandle_args *args,
|
struct of_phandle_args *args,
|
||||||
const char **dai_name)
|
const char **dai_name)
|
||||||
{
|
{
|
||||||
int id = args->args[0];
|
int id;
|
||||||
|
|
||||||
|
if (args->args_count)
|
||||||
|
id = args->args[0];
|
||||||
|
else
|
||||||
|
id = 0;
|
||||||
|
|
||||||
if (id < ARRAY_SIZE(hdmi_dai_name)) {
|
if (id < ARRAY_SIZE(hdmi_dai_name)) {
|
||||||
*dai_name = hdmi_dai_name[id];
|
*dai_name = hdmi_dai_name[id];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user