alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/6] ASoC: cs42xx8: Mark chip ID as volatile and remove cache bypass
@ 2016-10-24  9:55 Charles Keepax
  2016-10-24  9:55 ` [PATCH 2/6] ASoC: cs42l73: Make ID registers " Charles Keepax
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Charles Keepax @ 2016-10-24  9:55 UTC (permalink / raw)
  To: broonie; +Cc: brian.austin, alsa-devel, lgirdwood, Paul.Handrigan, patches

Rather than manually enabling cache bypass when reading the ID registers
simply mark them as volatile. The old code worked this is simply the
more standard way to implement this. There is a comment included in the
code that claims the chip ID register also contains the right input
volume, however this is clearly not the case from the rest of the
driver. Further investigation reveals exactly the same comment in the
wm8962 driver, where this is the case, so this is almost certainly a
copy and paste error from when the driver was created.

Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
---
 sound/soc/codecs/cs42xx8.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/sound/soc/codecs/cs42xx8.c b/sound/soc/codecs/cs42xx8.c
index b4d8737..1d50748 100644
--- a/sound/soc/codecs/cs42xx8.c
+++ b/sound/soc/codecs/cs42xx8.c
@@ -321,7 +321,6 @@ static struct snd_soc_dai_driver cs42xx8_dai = {
 };
 
 static const struct reg_default cs42xx8_reg[] = {
-	{ 0x01, 0x01 },   /* Chip I.D. and Revision Register */
 	{ 0x02, 0x00 },   /* Power Control */
 	{ 0x03, 0xF0 },   /* Functional Mode */
 	{ 0x04, 0x46 },   /* Interface Formats */
@@ -352,6 +351,7 @@ static const struct reg_default cs42xx8_reg[] = {
 static bool cs42xx8_volatile_register(struct device *dev, unsigned int reg)
 {
 	switch (reg) {
+	case CS42XX8_CHIPID:
 	case CS42XX8_STATUS:
 		return true;
 	default:
@@ -498,13 +498,6 @@ int cs42xx8_probe(struct device *dev, struct regmap *regmap)
 	/* Make sure hardware reset done */
 	msleep(5);
 
-	/*
-	 * We haven't marked the chip revision as volatile due to
-	 * sharing a register with the right input volume; explicitly
-	 * bypass the cache to read it.
-	 */
-	regcache_cache_bypass(cs42xx8->regmap, true);
-
 	/* Validate the chip ID */
 	ret = regmap_read(cs42xx8->regmap, CS42XX8_CHIPID, &val);
 	if (ret < 0) {
@@ -523,8 +516,6 @@ int cs42xx8_probe(struct device *dev, struct regmap *regmap)
 	dev_info(dev, "found device, revision %X\n",
 			val & CS42XX8_CHIPID_REV_ID_MASK);
 
-	regcache_cache_bypass(cs42xx8->regmap, false);
-
 	cs42xx8_dai.name = cs42xx8->drvdata->name;
 
 	/* Each adc supports stereo input */
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-10-25 15:15 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-24  9:55 [PATCH 1/6] ASoC: cs42xx8: Mark chip ID as volatile and remove cache bypass Charles Keepax
2016-10-24  9:55 ` [PATCH 2/6] ASoC: cs42l73: Make ID registers " Charles Keepax
2016-10-24  9:55 ` [PATCH 3/6] ASoC: cs42l56: " Charles Keepax
2016-10-24  9:55 ` [PATCH 4/6] ASoC: cs4265: Mark chip ID register as volatile Charles Keepax
2016-10-24  9:55 ` [PATCH 5/6] ASoC: cs42l52: " Charles Keepax
2016-10-24  9:55 ` [PATCH 6/6] ASoC: cs53l30: Mark chip ID registers " Charles Keepax
2016-10-24 12:55 ` [PATCH 1/6] ASoC: cs42xx8: Mark chip ID as volatile and remove cache bypass Brian Austin
2016-10-24 15:33 ` Mark Brown
2016-10-25 15:16   ` Charles Keepax

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).