Skip to content

Commit

Permalink
ASoC: CX20442: fix wrong reg_cache_default content
Browse files Browse the repository at this point in the history
Content of the CX20442's snd_soc_codec_driver.reg_cache_default pointed
area, introduced with my recent NULL pointer dereferece fix (commit
f019ee5), 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>
  • Loading branch information
Janusz Krzysztofik authored and Mark Brown committed Feb 11, 2011
1 parent b66a70d commit 8e6bfb9
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion sound/soc/codecs/cx20442.c
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ static int cx20442_codec_remove(struct snd_soc_codec *codec)
return 0;
}

static const u8 cx20442_reg = CX20442_TELOUT | CX20442_MIC;
static const u8 cx20442_reg;

static struct snd_soc_codec_driver cx20442_codec_dev = {
.probe = cx20442_codec_probe,
Expand Down

0 comments on commit 8e6bfb9

Please sign in to comment.