diff options
author | Mark Brown <broonie@kernel.org> | 2019-09-09 14:55:20 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2019-09-09 14:55:20 +0100 |
commit | bb831786117519fc16dfd3eaa7b84e4f6bbb8d99 (patch) | |
tree | 18f8333bbaf6918a0246113eeb0f056011e436f2 /sound/soc/generic/audio-graph-card.c | |
parent | 6652ddbb5d83ecfc2591b92be063519714e40ebf (diff) | |
parent | 6fa5963c37a2e3335eba0b7455e35a01318ebc15 (diff) | |
download | linux-stable-bb831786117519fc16dfd3eaa7b84e4f6bbb8d99.tar.gz linux-stable-bb831786117519fc16dfd3eaa7b84e4f6bbb8d99.tar.bz2 linux-stable-bb831786117519fc16dfd3eaa7b84e4f6bbb8d99.zip |
Merge branch 'asoc-5.4' into asoc-next
Diffstat (limited to 'sound/soc/generic/audio-graph-card.c')
-rw-r--r-- | sound/soc/generic/audio-graph-card.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 288df245b2f0..6007e6305735 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -129,6 +129,25 @@ static int asoc_simple_parse_dai(struct device_node *ep, args.args[0] = graph_get_dai_id(ep); args.args_count = (of_graph_get_endpoint_count(node) > 1); + /* + * FIXME + * + * Here, dlc->dai_name is pointer to CPU/Codec DAI name. + * If user unbinded CPU or Codec driver, but not for Sound Card, + * dlc->dai_name is keeping unbinded CPU or Codec + * driver's pointer. + * + * If user re-bind CPU or Codec driver again, ALSA SoC will try + * to rebind Card via snd_soc_try_rebind_card(), but because of + * above reason, it might can't bind Sound Card. + * Because Sound Card is pointing to released dai_name pointer. + * + * To avoid this rebind Card issue, + * 1) It needs to alloc memory to keep dai_name eventhough + * CPU or Codec driver was unbinded, or + * 2) user need to rebind Sound Card everytime + * if he unbinded CPU or Codec. + */ ret = snd_soc_get_dai_name(&args, &dlc->dai_name); if (ret < 0) return ret; |