Hi,
On 09-01-19 10:29, Dan Carpenter wrote:
I think the correct fix is actually this (untested):
Right, I'm pretty sure the soc framework depends on dev_get_drvdata
returning the snd_soc_card and I forgot about this when adding
the remove function.
Wei Yongjun, thank you for catching this.
Dan, thank you for the correct version of the patch :)
Dan, can you do an official submission of the correct version of the
patch, with a Reported-by: Wei Yongjun <weiyongjun1@xxxxxxxxxx>
or shall I submit your version upstream ?
Regards,
Hans
diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
index cdf2061e7613..fa9c4cf97686 100644
--- a/sound/soc/intel/boards/bytcht_es8316.c
+++ b/sound/soc/intel/boards/bytcht_es8316.c
@@ -544,7 +544,8 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
static int snd_byt_cht_es8316_mc_remove(struct platform_device *pdev)
{
- struct byt_cht_es8316_private *priv = platform_get_drvdata(pdev);
+ struct snd_soc_card *card = platform_get_drvdata(pdev);
+ struct byt_cht_es8316_private *priv = snd_soc_card_get_drvdata(card);
gpiod_put(priv->speaker_en_gpio);
return 0;