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: 9731f82d60
("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…
Reference in New Issue
Block a user