diff mbox

ASoC: wm8962: set ALC2 as non-volatile register

Message ID 1445577528-2354-1-git-send-email-jiada_wang@mentor.com (mailing list archive)
State Accepted
Commit 0b170f7acd2ab1ca0771b933493b9241706117b4
Headers show

Commit Message

Wang, Jiada Oct. 23, 2015, 5:18 a.m. UTC
Previously ALC2 register is set as a volatile register, declare
it as one of ALC Coefficients register together with other non-volatile
registers will cause issue, in case wm8962 has enter suspend mode,
and cache_only flag is set, any attempt to read from ALC2 will fail.

Because the 5 status bits in ALC2 aren't used anywhere nor are useful
to end user, so this patch removes ALC2 register from volatile
register list to make ALC2 be possible to be accessed when cache_only
flag is set.

Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
---
 sound/soc/codecs/wm8962.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Charles Keepax Oct. 26, 2015, 8:40 a.m. UTC | #1
On Fri, Oct 23, 2015 at 02:18:48PM +0900, Jiada Wang wrote:
> Previously ALC2 register is set as a volatile register, declare
> it as one of ALC Coefficients register together with other non-volatile
> registers will cause issue, in case wm8962 has enter suspend mode,
> and cache_only flag is set, any attempt to read from ALC2 will fail.
> 
> Because the 5 status bits in ALC2 aren't used anywhere nor are useful
> to end user, so this patch removes ALC2 register from volatile
> register list to make ALC2 be possible to be accessed when cache_only
> flag is set.
> 
> Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
> ---

Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>

Thanks,
Charles
diff mbox

Patch

diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 2fbc6ef..371ec72 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -131,7 +131,7 @@  static const struct reg_default wm8962_reg[] = {
 	{ 15, 0x6243 },   /* R15    - Software Reset */
 
 	{ 17, 0x007B },   /* R17    - ALC1 */
-
+	{ 18, 0x0000 },   /* R18    - ALC2 */
 	{ 19, 0x1C32 },   /* R19    - ALC3 */
 	{ 20, 0x3200 },   /* R20    - Noise Gate */
 	{ 21, 0x00C0 },   /* R21    - Left ADC volume */
@@ -794,7 +794,6 @@  static bool wm8962_volatile_register(struct device *dev, unsigned int reg)
 	case WM8962_CLOCKING1:
 	case WM8962_CLOCKING2:
 	case WM8962_SOFTWARE_RESET:
-	case WM8962_ALC2:
 	case WM8962_THERMAL_SHUTDOWN_STATUS:
 	case WM8962_ADDITIONAL_CONTROL_4:
 	case WM8962_DC_SERVO_6: