On Mon, Mar 05, 2018 at 01:48:16PM +0100, Mylène Josserand wrote: > --- /dev/null > +++ b/sound/soc/codecs/pcm1789-i2c.c > @@ -0,0 +1,76 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * PCM1789 ASoC I2C driver > + * > + * Copyright (c) Bootlin 2018 > + * > + * Mylène Josserand > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License Please don't mix C and C++ style comments in a single comment like this - it looks unintentional. Just use the same style for the whole thing. You also don't need to include all the boilerplate with the SPDX header. > +static bool pcm1789_accessible_reg(struct device *dev, unsigned int reg) > +{ > + return reg >= PCM1789_MUTE_CONTROL && reg <= PCM1789_DAC_VOL_RIGHT; > +} > + > +static bool pcm1789_writeable_reg(struct device *dev, unsigned int reg) > +{ > + return pcm1789_accessible_reg(dev, reg); > +} > +static void pcm1789_work_queue(struct work_struct *work) > +{ > + struct pcm1789_private *priv = container_of(work, > + struct pcm1789_private, > + work); > + > + /* Perform a software reset to remove codec from desynchronized state */ > + if (regmap_update_bits(priv->regmap, PCM1789_MUTE_CONTROL, > + 0x3 << PCM1789_MUTE_SRET, 0) < 0) > + dev_err(priv->dev, "Error while setting SRET"); > +} A reset sounds like we'd also need to resync the register map, presumably this is something else? The comment could be clearer.