ASoC: CX20442: fix wrong reg_cache_default content
authorJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Thu, 10 Feb 2011 12:24:32 +0000 (13:24 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 11 Feb 2011 11:00:30 +0000 (11:00 +0000)
commit8e6bfb9b1f79e07c18b0ae406c7c678fc54e4d8e
tree8bf730fcb5553ad71ceab2acc1baf55296d6e792
parentb66a70d5e9929f3b0df5a7177bba75652d2f4c3e
ASoC: CX20442: fix wrong reg_cache_default content

Content of the CX20442's snd_soc_codec_driver.reg_cache_default pointed
area, introduced with my recent NULL pointer dereferece fix (commit
f019ee5feb344ff0b22b58df4568676295aae14f), occured wrong after further
testing, more thorough than just booting successfully. There are two
problems with it:

1) It should read
(1 << CX20442_TELOUT) | (1 << CX20442_MIC),
   not
CX20442_TELOUT | CX20442_MIC.

2) While correctly matching actual codec hardware state on boot when
   fixed per 1), a few more code modifications would still be required
   to reflect that state not only into register cache, but also force
   them into DAPM pins state, otherwise an inconsitency occures which
   may prevent further codec state changes from being applied correctly.
   As a result, the phone stops ringing after reboot, until someone
   picks up the handset for the first time.

Revert that reg_cache_default content to a working, previous de facto
default value of 0, in hope this change can still be accepted as an rc
cycle fix.

Created and tested against linux-2.6.38-rc4

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/cx20442.c