| From 56e0c26baf1c0075262e056c0a589277aae01a7b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 7 Jun 2021 17:22:29 -0500 |
| Subject: ASoC: rt5682-sdw: use first_hw_init flag on resume |
| |
| From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| |
| [ Upstream commit 5361a42114689f875a9748299cadb4b1adbee6f4 ] |
| |
| The intent of the status check on resume was to verify if a SoundWire |
| peripheral reported ATTACHED before waiting for the initialization to |
| complete. This is required to avoid timeouts that will happen with |
| 'ghost' devices that are exposed in the platform firmware but are not |
| populated in hardware. |
| |
| Unfortunately we used 'hw_init' instead of 'first_hw_init'. Due to |
| another error, the resume operation never timed out, but the volume |
| settings were not properly restored. |
| |
| BugLink: https://github.com/thesofproject/linux/issues/2908 |
| BugLink: https://github.com/thesofproject/linux/issues/2637 |
| Fixes: 03f6fc6de9192 ('ASoC: rt5682: Add the soundwire support') |
| Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com> |
| Reviewed-by: Bard Liao <bard.liao@intel.com> |
| Link: https://lore.kernel.org/r/20210607222239.582139-6-pierre-louis.bossart@linux.intel.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| sound/soc/codecs/rt5682-sdw.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/sound/soc/codecs/rt5682-sdw.c b/sound/soc/codecs/rt5682-sdw.c |
| index aa6c325faeab..848b79b5a130 100644 |
| --- a/sound/soc/codecs/rt5682-sdw.c |
| +++ b/sound/soc/codecs/rt5682-sdw.c |
| @@ -734,7 +734,7 @@ static int __maybe_unused rt5682_dev_resume(struct device *dev) |
| struct rt5682_priv *rt5682 = dev_get_drvdata(dev); |
| unsigned long time; |
| |
| - if (!rt5682->hw_init) |
| + if (!rt5682->first_hw_init) |
| return 0; |
| |
| if (!slave->unattach_request) |
| -- |
| 2.30.2 |
| |