From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: Mark Brown <broonie@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>
Cc: <alsa-devel@alsa-project.org>, <stable@vger.kernel.org>
Subject: Re: [PATCH] ASoC: ak4642: Enable cache usage to fix crashes on resume
Date: Thu, 19 May 2016 09:33:15 +0300 [thread overview]
Message-ID: <52f206d4-ea9d-0cfc-613a-c625298cb9b2@ti.com> (raw)
In-Reply-To: <1463593762-31871-1-git-send-email-broonie@kernel.org>
On 05/18/16 20:49, Mark Brown wrote:
> The ak4642 driver is using a regmap cache sync to restore the
> configuration of the chip on resume but (as Peter observed) does not
> actually define a register cache which means that the resume is never
> going to work and we trigger asserts in regmap. Fix this by enabling
> caching.
Should the ak4642 implement the suspend callback and:
static int ak4642_suspend(struct snd_soc_codec *codec)
{
struct regmap *regmap = dev_get_regmap(codec->dev, NULL);
regcache_cache_only(regmap, true);
regcache_mark_dirty(regmap);
return 0;
}
static int ak4642_resume(struct snd_soc_codec *codec)
{
struct regmap *regmap = dev_get_regmap(codec->dev, NULL);
regcache_cache_only(regmap, false);
regcache_sync(regmap);
return 0;
}
I know it is highly unlikely that anything is going to be written to the chip
while the board is suspended. Probably the suspend and changing the cache only
is not needed, but in this way things look a bit more complete?
>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Reported-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> Cc: stable@vger.kernel.org
> ---
> sound/soc/codecs/ak4642.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
> index 1ee8506c06c7..4d8b9e49e8d6 100644
> --- a/sound/soc/codecs/ak4642.c
> +++ b/sound/soc/codecs/ak4642.c
> @@ -560,6 +560,7 @@ static const struct regmap_config ak4642_regmap = {
> .max_register = FIL1_3,
> .reg_defaults = ak4642_reg,
> .num_reg_defaults = NUM_AK4642_REG_DEFAULTS,
> + .cache_type = REGCACHE_RBTREE,
> };
>
> static const struct regmap_config ak4643_regmap = {
> @@ -568,6 +569,7 @@ static const struct regmap_config ak4643_regmap = {
> .max_register = SPK_MS,
> .reg_defaults = ak4643_reg,
> .num_reg_defaults = ARRAY_SIZE(ak4643_reg),
> + .cache_type = REGCACHE_RBTREE,
> };
>
> static const struct regmap_config ak4648_regmap = {
> @@ -576,6 +578,7 @@ static const struct regmap_config ak4648_regmap = {
> .max_register = EQ_FBEQE,
> .reg_defaults = ak4648_reg,
> .num_reg_defaults = ARRAY_SIZE(ak4648_reg),
> + .cache_type = REGCACHE_RBTREE,
> };
>
> static const struct ak4642_drvdata ak4642_drvdata = {
>
--
P�ter
next prev parent reply other threads:[~2016-05-19 6:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-18 17:49 [PATCH] ASoC: ak4642: Enable cache usage to fix crashes on resume Mark Brown
2016-05-18 18:05 ` Geert Uytterhoeven
2016-05-18 18:13 ` Applied "ASoC: ak4642: Enable cache usage to fix crashes on resume" to the asoc tree Mark Brown
2016-05-19 6:33 ` Peter Ujfalusi [this message]
2016-05-19 10:10 ` [PATCH] ASoC: ak4642: Enable cache usage to fix crashes on resume Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52f206d4-ea9d-0cfc-613a-c625298cb9b2@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=geert@linux-m68k.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox