[PATCH 0/2] Add remove path for Tegra audio graph card
Audio graph driver cleans up phandle references of CPU/CODEC nodes in graph_remove() path. As Tegra graph card driver is based on this populate remove callback for it.
Sameer Pujar (2): ASoC: audio-graph: Export graph_remove() function ASoC: tegra: Add driver remove() callback
include/sound/graph_card.h | 2 ++ sound/soc/generic/audio-graph-card.c | 3 ++- sound/soc/tegra/tegra_audio_graph_card.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-)
Audio graph based sound card drivers can call graph_remove() function for cleanups during driver removal. To facilitate this export above mentioned function.
Signed-off-by: Sameer Pujar spujar@nvidia.com Cc: Kuninori Morimoto kuninori.morimoto.gx@renesas.com --- include/sound/graph_card.h | 2 ++ sound/soc/generic/audio-graph-card.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/include/sound/graph_card.h b/include/sound/graph_card.h index bbb5a13..dfa8e56 100644 --- a/include/sound/graph_card.h +++ b/include/sound/graph_card.h @@ -13,4 +13,6 @@ int graph_card_probe(struct snd_soc_card *card);
int graph_parse_of(struct asoc_simple_priv *priv, struct device *dev);
+int graph_remove(struct platform_device *pdev); + #endif /* __GRAPH_CARD_H */ diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 16a04a6..93f6d57f 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -744,12 +744,13 @@ static int graph_probe(struct platform_device *pdev) return graph_parse_of(priv, dev); }
-static int graph_remove(struct platform_device *pdev) +int graph_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev);
return asoc_simple_clean_reference(card); } +EXPORT_SYMBOL_GPL(graph_remove);
static const struct of_device_id graph_of_match[] = { { .compatible = "audio-graph-card", },
On 2/3/2021 9:49 PM, Mark Brown wrote:
On Wed, Feb 03, 2021 at 09:39:34PM +0530, Sameer Pujar wrote:
+int graph_remove(struct platform_device *pdev);
I think this needs better namespacing if it's going to be exported.
audio_graph_remove() can be a better choice?
On Wed, Feb 03, 2021 at 10:09:01PM +0530, Sameer Pujar wrote:
On 2/3/2021 9:49 PM, Mark Brown wrote:
On Wed, Feb 03, 2021 at 09:39:34PM +0530, Sameer Pujar wrote:
+int graph_remove(struct platform_device *pdev);
I think this needs better namespacing if it's going to be exported.
audio_graph_remove() can be a better choice?
Yeah, that looks reasonable.
Hi
+int graph_remove(struct platform_device *pdev);
I think this needs better namespacing if it's going to be exported.
audio_graph_remove() can be a better choice?
Yeah, that looks reasonable.
Nice naming I think. In such case, update also graph_parse_of() is nice idea for me.
- int graph_parse_of(...) + int audio_graph_parse_of()
Thank you for your help !!
Best regards --- Kuninori Morimoto
On 2/4/2021 4:03 AM, Kuninori Morimoto wrote:
External email: Use caution opening links or attachments
Hi
+int graph_remove(struct platform_device *pdev);
I think this needs better namespacing if it's going to be exported.
audio_graph_remove() can be a better choice?
Yeah, that looks reasonable.
Nice naming I think. In such case, update also graph_parse_of() is nice idea for me.
- int graph_parse_of(...) + int audio_graph_parse_of()
OK, Will update following.
graph_remove() --> audio_graph_remove() graph_parse_of() --> audio_graph_parse_of() graph_card_probe() --> audio_graph_card_probe()
Hi Sameer
Audio graph based sound card drivers can call graph_remove() function for cleanups during driver removal. To facilitate this export above mentioned function.
Signed-off-by: Sameer Pujar spujar@nvidia.com Cc: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
(snip)
-static int graph_remove(struct platform_device *pdev) +int graph_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev);
return asoc_simple_clean_reference(card); } +EXPORT_SYMBOL_GPL(graph_remove);
Not a big deal, but it is just calling asoc_simple_clean_reference() which is already global function.
Thank you for your help !!
Best regards --- Kuninori Morimoto
On 2/4/2021 4:01 AM, Kuninori Morimoto wrote:
Audio graph based sound card drivers can call graph_remove() function for cleanups during driver removal. To facilitate this export above mentioned function.
Signed-off-by: Sameer Pujar spujar@nvidia.com Cc: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
(snip)
-static int graph_remove(struct platform_device *pdev) +int graph_remove(struct platform_device *pdev) { struct snd_soc_card *card = platform_get_drvdata(pdev);
return asoc_simple_clean_reference(card);
} +EXPORT_SYMBOL_GPL(graph_remove);
Not a big deal, but it is just calling asoc_simple_clean_reference() which is already global function.
Yes that is true, but idea was to put dependency on graph_remove() so that any additions/changes here in future will be automatically taken care for Tegra graph card.
There is cleanup required, related to release of phandles, during driver removal and hence point remove function pointer to graph_remove().
Fixes: 202e2f774543 ("ASoC: tegra: Add audio graph based card driver") Signed-off-by: Sameer Pujar spujar@nvidia.com --- sound/soc/tegra/tegra_audio_graph_card.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/soc/tegra/tegra_audio_graph_card.c b/sound/soc/tegra/tegra_audio_graph_card.c index 9e43f16..f43d302 100644 --- a/sound/soc/tegra/tegra_audio_graph_card.c +++ b/sound/soc/tegra/tegra_audio_graph_card.c @@ -2,7 +2,7 @@ // // tegra_audio_graph_card.c - Audio Graph based Tegra Machine Driver // -// Copyright (c) 2020 NVIDIA CORPORATION. All rights reserved. +// Copyright (c) 2020-2021 NVIDIA CORPORATION. All rights reserved.
#include <linux/math64.h> #include <linux/module.h> @@ -243,6 +243,7 @@ static struct platform_driver tegra_audio_graph_card = { .of_match_table = graph_of_tegra_match, }, .probe = tegra_audio_graph_probe, + .remove = graph_remove, }; module_platform_driver(tegra_audio_graph_card);
participants (3)
-
Kuninori Morimoto
-
Mark Brown
-
Sameer Pujar