linux/sound/soc
Lars-Peter Clausen 425332106e ASoC: ssm4567: Reset device before regcache_sync()
[ Upstream commit 712a8038cc ]

When the ssm4567 is powered up the driver calles regcache_sync() to restore
the register map content. regcache_sync() assumes that the device is in its
power-on reset state. Make sure that this is the case by explicitly
resetting the ssm4567 register map before calling regcache_sync() otherwise
we might end up with a incorrect register map which leads to undefined
behaviour.

One such undefined behaviour was observed when returning from system
suspend while a playback stream is active, in that case the ssm4567 was
kept muted after resume.

Fixes: 1ee44ce030 ("ASoC: ssm4567: Add driver for Analog Devices SSM4567 amplifier")
Reported-by: Harsha Priya <harshapriya.n@intel.com>
Tested-by: Fang, Yang A <yang.a.fang@intel.com>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2016-07-12 08:47:49 -04:00
..
adi ASoC: axi-{spdif,i2s}: Remove SND_DMAENGINE_PCM_FLAG_NO_RESIDUE flag 2014-01-14 21:28:39 +00:00
atmel ASoC: atmel_ssc_dai: fix start event for I2S mode 2015-02-11 15:00:55 +08:00
au1x MIPS: Alchemy: remove au_read/write/sync 2014-07-30 13:56:34 +02:00
bcm ASoC: bcm: Remove obsoleted Kconfig dependency 2014-01-08 20:00:04 +00:00
blackfin ASoC: blackfin: use samples to set silence 2014-07-17 12:27:56 +01:00
cirrus Merge remote-tracking branch 'asoc/topic/cirrus' into asoc-next 2014-03-13 14:19:11 +00:00
codecs ASoC: ssm4567: Reset device before regcache_sync() 2016-07-12 08:47:49 -04:00
davinci ASoC: davinci-evm: drop un-necessary remove function 2015-05-17 19:12:15 -04:00
dwc ASoC: dwc: correct irq clear method 2015-10-27 22:13:25 -04:00
fsl ASoC: imx-wm8962: Add a missing error check 2015-08-04 14:18:32 -04:00
generic ASoC: simple-card: Fix crash in asoc_simple_card_unref() 2015-02-05 22:36:02 -08:00
intel ASoC: Intel: HSW/BDW only support S16 and S24 formats. 2014-10-16 16:48:05 +02:00
jz4740 Merge remote-tracking branches 'asoc/topic/headers', 'asoc/topic/intel', 'asoc/topic/jz4740', 'asoc/topic/max98090', 'asoc/topic/max98095', 'asoc/topic/mc13783' and 'asoc/topic/multicodec' into asoc-next 2014-05-22 00:23:54 +01:00
kirkwood ASoC: kirkwood: Remove ARCH_KIRKWOOD dependency 2014-07-29 20:35:23 +01:00
mxs Merge remote-tracking branches 'asoc/topic/adsp', 'asoc/topic/atmel', 'asoc/topic/bcm2835', 'asoc/topic/docs', 'asoc/topic/fsl', 'asoc/topic/generic', 'asoc/topic/kirkwood', 'asoc/topic/mc13783', 'asoc/topic/mxs', 'asoc/topic/nuc900', 'asoc/topic/sai', 'asoc/topic/sh', 'asoc/topic/ssm2602', 'asoc/topic/tlv320aic3x', 'asoc/topic/twl4030', 'asoc/topic/ux500', 'asoc/topic/width' and 'asoc/topic/x86' into for-tiwai 2014-01-16 12:44:01 +00:00
nuc900 ASoC: nuc900: export nuc900_ac97_data 2014-04-30 20:32:20 -07:00
omap ASoC: omap-pcm: Correct dma mask 2015-03-23 21:02:51 -04:00
pxa ASoC: fix broken pxa SoC support 2015-10-27 22:13:24 -04:00
rockchip ASoC: rockchip-i2s: fix infinite loop in rockchip_snd_rxctrl 2014-10-29 10:17:25 +00:00
samsung ASoC: s3c24xx: use const snd_soc_component_driver pointer 2016-07-12 08:47:48 -04:00
sh ASoC: rsnd: remove unsupported PAUSE flag 2014-10-29 11:02:50 +00:00
sirf ASoC: sirf: usp: Add bitclock inversion support 2014-08-16 17:06:42 -05:00
spear ASoC: Update email id of the author 2014-09-09 10:49:41 +01:00
tegra Merge remote-tracking branches 'asoc/topic/suspend', 'asoc/topic/tas2552', 'asoc/topic/tegra', 'asoc/topic/tlv320aic31xx' and 'asoc/topic/tlv320aic3x' into asoc-next 2014-10-06 12:49:07 +01:00
txx9 ASoC: txx9: Don't opencode DMAengine API calls 2014-08-19 11:44:18 -05:00
ux500 ASoC: mop500_ab8500: Replace instances of rtd->codec->card with rtd->card 2014-05-20 22:55:39 +01:00
Kconfig ASoC: s6000: remove driver 2014-10-20 11:03:52 +01:00
Makefile ASoC: s6000: remove driver 2014-10-20 11:03:52 +01:00
soc-cache.c ASoC: Move name and id from CODEC/platform to component 2014-06-21 21:04:24 +01:00
soc-compress.c ASoC: soc-compress.c: fix NULL dereference 2015-02-05 22:36:02 -08:00
soc-core.c ASoC: Fix snd_soc_find_dai() matching component by name 2014-10-29 20:51:30 +00:00
soc-dapm.c ASoC: dapm: Lock during userspace access 2015-08-22 14:05:32 -04:00
soc-devres.c ASoC: Export devm_snd_soc_register_platform() 2014-04-22 22:00:42 +01:00
soc-generic-dmaengine-pcm.c ASoC: Consolidate platform and CODEC probe/remove 2014-08-19 10:59:45 -05:00
soc-io.c ASoC: Automatically initialize regmap for all components 2014-08-19 10:59:47 -05:00
soc-jack.c ASoC: Move card field form platform/codec to component 2014-07-22 23:15:57 +01:00
soc-pcm.c ASoC: dpcm: fix the BE state on hw_free 2016-03-02 15:18:55 -05:00
soc-utils.c Merge remote-tracking branch 'asoc/topic/dapm' into for-tiwai 2014-01-16 12:42:53 +00:00