Message ID | 1477302949-28049-1-git-send-email-ckeepax@opensource.wolfsonmicro.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, 24 Oct 2016, Charles Keepax wrote: > 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> > --- For the series <Acked-by: Brian Austin <brian.austin@cirrus.com>
On Mon, Oct 24, 2016 at 10:55:44AM +0100, Charles Keepax wrote: > 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 Even better just remove the register default, with rbtree regmap will do the read and then cache it - no need to mark as volatile.
On Mon, Oct 24, 2016 at 04:33:42PM +0100, Mark Brown wrote: > On Mon, Oct 24, 2016 at 10:55:44AM +0100, Charles Keepax wrote: > > 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 > > Even better just remove the register default, with rbtree regmap will do > the read and then cache it - no need to mark as volatile. :-) well if we are preferring that then some of the series can just be dropped, as they were changing exactly that to be explicitly marked volatile. I will fixup the remaining patches and resend. Thanks, Charles
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 */
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(-)