ASoC: sun8i-codec: fix crash on module removal
drvdata is actually sun8i_codec, not snd_soc_card, so it crashes
when calling snd_soc_card_get_drvdata().
Drop card and scodec vars anyway since we don't need to
disable/unprepare clocks - it's already done by calling
runtime_suspend()
Drop clk_disable_unprepare() calls for the same reason.
Fixes: 36c684936f
("ASoC: Add sun8i digital audio codec")
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
e14856f6cf
commit
278df5e552
@ -605,16 +605,10 @@ err_pm_disable:
|
|||||||
|
|
||||||
static int sun8i_codec_remove(struct platform_device *pdev)
|
static int sun8i_codec_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct snd_soc_card *card = platform_get_drvdata(pdev);
|
|
||||||
struct sun8i_codec *scodec = snd_soc_card_get_drvdata(card);
|
|
||||||
|
|
||||||
pm_runtime_disable(&pdev->dev);
|
pm_runtime_disable(&pdev->dev);
|
||||||
if (!pm_runtime_status_suspended(&pdev->dev))
|
if (!pm_runtime_status_suspended(&pdev->dev))
|
||||||
sun8i_codec_runtime_suspend(&pdev->dev);
|
sun8i_codec_runtime_suspend(&pdev->dev);
|
||||||
|
|
||||||
clk_disable_unprepare(scodec->clk_module);
|
|
||||||
clk_disable_unprepare(scodec->clk_bus);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user