summaryrefslogtreecommitdiff
path: root/sound/soc/intel/boards/bytcr_rt5640.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/intel/boards/bytcr_rt5640.c')
-rw-r--r--sound/soc/intel/boards/bytcr_rt5640.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 4215bbafd2f7..41fd56d42103 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -1481,7 +1481,7 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
/* Must be called before register_card, also see declaration comment. */
ret_val = byt_rt5640_add_codec_device_props(codec_dev, priv);
if (ret_val)
- goto err;
+ goto err_device;
log_quirks(&pdev->dev);
@@ -1584,6 +1584,8 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
return ret_val;
err:
+ device_remove_properties(priv->codec_dev);
+err_device:
put_device(priv->codec_dev);
return ret_val;
}
@@ -1593,6 +1595,7 @@ static int snd_byt_rt5640_mc_remove(struct platform_device *pdev)
struct snd_soc_card *card = platform_get_drvdata(pdev);
struct byt_rt5640_private *priv = snd_soc_card_get_drvdata(card);
+ device_remove_properties(priv->codec_dev);
put_device(priv->codec_dev);
return 0;
}