Re: [alsa-devel] [PATCH 1/2] ASoC: samsung: i2s: Fix the secondary platform device registration
On Fri, 15 Feb 2019 at 15:48, Sylwester Nawrocki s.nawrocki@samsung.com wrote:
This fixes unregistration of the secondary platform device so all resources are properly released. The test for NULL priv->pdev_sec is not necessary and it is removed.
Signed-off-by: Sylwester Nawrocki s.nawrocki@samsung.com
This patch is based off of ASoC for-next and patches: ASoC: samsung: odroid: Ensure proper sample rate on pri/sec PCM ASoC: samsung: i2s: Prevent potential NULL platform data dereference ASoC: samsung: odroid: Add missing DAPM routes
sound/soc/samsung/i2s.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 6bf0f55d1e51..e36c44e2f1bb 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -1359,11 +1359,10 @@ static int i2s_create_secondary_device(struct samsung_i2s_priv *priv)
static void i2s_delete_secondary_device(struct samsung_i2s_priv *priv) {
if (priv->pdev_sec) {
platform_device_del(priv->pdev_sec);
priv->pdev_sec = NULL;
}
platform_device_unregister(priv->pdev_sec);
priv->pdev_sec = NULL;
Reviewed-by: Krzysztof Kozlowski krzk@kernel.org
Although I think that you might need to re-order calls in samsung_i2s_remove(). In general they should be in exact reverse order of probe(). In this case, clk_disable_unprepare(priv->clk) should be after unregistering secondary device. If order has to be different because of some reasons - could you document them in comment?
Best regards, Krzysztof
On 2/18/19 09:31, Krzysztof Kozlowski wrote:
On Fri, 15 Feb 2019 at 15:48, Sylwester Nawrocki s.nawrocki@samsung.com wrote:
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 6bf0f55d1e51..e36c44e2f1bb 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -1359,11 +1359,10 @@ static int i2s_create_secondary_device(struct samsung_i2s_priv *priv)
static void i2s_delete_secondary_device(struct samsung_i2s_priv *priv) {
if (priv->pdev_sec) {
platform_device_del(priv->pdev_sec);
priv->pdev_sec = NULL;
}
platform_device_unregister(priv->pdev_sec);
priv->pdev_sec = NULL;
Reviewed-by: Krzysztof Kozlowski krzk@kernel.org
Although I think that you might need to re-order calls in samsung_i2s_remove(). In general they should be in exact reverse order of probe(). In this case, clk_disable_unprepare(priv->clk) should be after unregistering secondary device. If order has to be different because of some reasons - could you document them in comment?
Makes sense, I will change the order and resend both patches.
Thanks, Sylwester
participants (2)
-
Krzysztof Kozlowski
-
Sylwester Nawrocki