Hi Mark, Tony > From tony Mon Sep 17 00:00:00 2001 > From: Tony Lindgren <tony@xxxxxxxxxxx> > Date: Fri, 12 Jan 2018 10:24:36 -0800 > Subject: [PATCH] ASoC: Fix twl4030 and 6040 regression by adding back read > and write > > Commit 3bb0f7c31b1a ("ASoC: don't use snd_soc_write/read on twl4030") > caused regressions for both twl4030 and twl6040 as it assumes the > ASoC driver is using regmap. As a side effect, this also causes a > considerable increase in idle power consumption omap3 boards using > twl4030 as the PMIC. > > This is because the removal of read and write function pointers > causes some of the ASoC IO functions to not do anything. For example, > snd_soc_register_card() calls snd_soc_dapm_new_widgets() that calls > snd_soc_codec_drv_read() that now does nothing. > > A long term solution suggested by Mark Brown <broonie@xxxxxxxxxx> > is to make the twl drivers use regmap by adding a call to > snd_soc_codec_set_regmap(). This however needs more consideration > as currently the driver internal reads do caching and we would have > both regmap access and internal read/write access accessing the same > hardware registers. > > So to fix the regression, let's just do a partial revert adding back > the read and write function pointers. Note that other non-regmap > ASoC drivers may need similar patches. > > Fixes: 3bb0f7c31b1a ("ASoC: don't use snd_soc_write/read on twl4030") > Fixes: 93a00c467fe9 ("ASoC: don't use snd_soc_write/read on twl6040") > Cc: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > Cc: Peter Ujfalusi <peter.ujfalusi@xxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> Mark I think all other driver needs .read/.write back. I will post it. And .read/.write is supported on codec driver side only now, so, we need it to component side too. I will post it too. Best regards --- Kuninori Morimoto -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html