* [PATCH] Fix the device references to codec and platform drivers
@ 2011-01-05 6:04 Harsha, Priya
2011-01-05 9:59 ` Liam Girdwood
2011-01-05 11:29 ` Mark Brown
0 siblings, 2 replies; 3+ messages in thread
From: Harsha, Priya @ 2011-01-05 6:04 UTC (permalink / raw)
To: alsa-devel; +Cc: Harsha Priya, Vinod Koul, broonie, lrg
From: Harsha Priya <priya.harsha@intel.com>
The soc-core takes the platform and codec driver reference during probe. Few of
these references are not released during remove. This cause the platform and
codec driver module unload to fail.
This patch fixes by the taking only one reference to platform and codec module
during probe and releases them correctly during remove. This allows load/unload
properly
Signed-off-by: Vinod Koul<vinod.koul@intel.com>
Signed-off-by: Harsha Priya <priya.harsha@intel.com>
---
sound/soc/soc-core.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index a233607..bac7291 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1259,9 +1259,6 @@ find_codec:
if (!strcmp(codec->name, dai_link->codec_name)) {
rtd->codec = codec;
- if (!try_module_get(codec->dev->driver->owner))
- return -ENODEV;
-
/* CODEC found, so find CODEC DAI from registered DAIs from this CODEC*/
list_for_each_entry(codec_dai, &dai_list, list) {
if (codec->dev == codec_dai->dev &&
@@ -1287,10 +1284,6 @@ find_platform:
/* no, then find CPU DAI from registered DAIs*/
list_for_each_entry(platform, &platform_list, list) {
if (!strcmp(platform->name, dai_link->platform_name)) {
-
- if (!try_module_get(platform->dev->driver->owner))
- return -ENODEV;
-
rtd->platform = platform;
goto out;
}
@@ -1425,6 +1418,9 @@ static int soc_probe_codec(struct snd_soc_card *card,
soc_init_codec_debugfs(codec);
/* mark codec as probed and add to card codec list */
+ if (!try_module_get(codec->dev->driver->owner))
+ return -ENODEV;
+
codec->probed = 1;
list_add(&codec->card_list, &card->codec_dev_list);
list_add(&codec->dapm.list, &card->dapm_list);
@@ -1556,6 +1552,10 @@ static int soc_probe_dai_link(struct snd_soc_card *card, int num)
}
}
/* mark platform as probed and add to card platform list */
+
+ if (!try_module_get(platform->dev->driver->owner))
+ return -ENODEV;
+
platform->probed = 1;
list_add(&platform->card_list, &card->platform_dev_list);
}
--
1.7.2.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] Fix the device references to codec and platform drivers
2011-01-05 6:04 [PATCH] Fix the device references to codec and platform drivers Harsha, Priya
@ 2011-01-05 9:59 ` Liam Girdwood
2011-01-05 11:29 ` Mark Brown
1 sibling, 0 replies; 3+ messages in thread
From: Liam Girdwood @ 2011-01-05 9:59 UTC (permalink / raw)
To: Harsha, Priya; +Cc: Vinod Koul, alsa-devel, broonie
On Wed, 2011-01-05 at 11:34 +0530, Harsha, Priya wrote:
> From: Harsha Priya <priya.harsha@intel.com>
>
> The soc-core takes the platform and codec driver reference during probe. Few of
> these references are not released during remove. This cause the platform and
> codec driver module unload to fail.
>
> This patch fixes by the taking only one reference to platform and codec module
> during probe and releases them correctly during remove. This allows load/unload
> properly
>
> Signed-off-by: Vinod Koul<vinod.koul@intel.com>
> Signed-off-by: Harsha Priya <priya.harsha@intel.com>
> ---
> sound/soc/soc-core.c | 14 +++++++-------
> 1 files changed, 7 insertions(+), 7 deletions(-)
>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
--
Freelance Developer, SlimLogic Ltd
ASoC and Voltage Regulator Maintainer.
http://www.slimlogic.co.uk
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Fix the device references to codec and platform drivers
2011-01-05 6:04 [PATCH] Fix the device references to codec and platform drivers Harsha, Priya
2011-01-05 9:59 ` Liam Girdwood
@ 2011-01-05 11:29 ` Mark Brown
1 sibling, 0 replies; 3+ messages in thread
From: Mark Brown @ 2011-01-05 11:29 UTC (permalink / raw)
To: Harsha, Priya; +Cc: Vinod Koul, alsa-devel, lrg
On Wed, Jan 05, 2011 at 11:34:51AM +0530, Harsha, Priya wrote:
> From: Harsha Priya <priya.harsha@intel.com>
>
> The soc-core takes the platform and codec driver reference during probe. Few of
> these references are not released during remove. This cause the platform and
> codec driver module unload to fail.
Applied, thanks.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-01-05 11:29 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-05 6:04 [PATCH] Fix the device references to codec and platform drivers Harsha, Priya
2011-01-05 9:59 ` Liam Girdwood
2011-01-05 11:29 ` Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).