diff options
author | Bard Liao <yung-chuan.liao@linux.intel.com> | 2021-06-08 01:22:37 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-06-08 15:36:39 +0300 |
commit | c0372bc873dd29f325ee908351e0bd5b08d4d608 (patch) | |
tree | fa8f97bb71d158dba60b50cdb2e7b0a0666c8c8c /sound/soc/codecs/rt5682-sdw.c | |
parent | 9266d95405ae0c078f188ec8bca3a004631be429 (diff) | |
download | linux-c0372bc873dd29f325ee908351e0bd5b08d4d608.tar.xz |
ASoC: rt5682-sdw: set regcache_cache_only false before reading RT5682_DEVICE_ID
RT5682_DEVICE_ID is a volatile register, we can not read it in cache
only mode.
Fixes: 03f6fc6de919 ("ASoC: rt5682: Add the soundwire support")
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210607222239.582139-14-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/rt5682-sdw.c')
-rw-r--r-- | sound/soc/codecs/rt5682-sdw.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/sound/soc/codecs/rt5682-sdw.c b/sound/soc/codecs/rt5682-sdw.c index 529a85fd0a00..54873730bec5 100644 --- a/sound/soc/codecs/rt5682-sdw.c +++ b/sound/soc/codecs/rt5682-sdw.c @@ -400,6 +400,11 @@ static int rt5682_io_init(struct device *dev, struct sdw_slave *slave) pm_runtime_get_noresume(&slave->dev); + if (rt5682->first_hw_init) { + regcache_cache_only(rt5682->regmap, false); + regcache_cache_bypass(rt5682->regmap, true); + } + while (loop > 0) { regmap_read(rt5682->regmap, RT5682_DEVICE_ID, &val); if (val == DEVICE_ID) @@ -415,11 +420,6 @@ static int rt5682_io_init(struct device *dev, struct sdw_slave *slave) goto err_nodev; } - if (rt5682->first_hw_init) { - regcache_cache_only(rt5682->regmap, false); - regcache_cache_bypass(rt5682->regmap, true); - } - rt5682_calibrate(rt5682); if (rt5682->first_hw_init) { |