On Fri, Jan 27, 2012 at 04:10:23PM +0100, Wolfram Sang wrote: > Mark: Still no DAPM support. We don't have PM on this board, and since I > couldn't easily figure what is expected from me here, I'd like to leave this > for people who have real interest in that. I don't understand what was unclear here... You should at least use set_bias_level() to manage the shutdown GPIO I guess. > +static const struct snd_kcontrol_new max9768_volume[] = { > + SOC_SINGLE_TLV("Playback Volume", MAX9768_VOL, 0, 63, 0, volume_tlv), > +}; > +static const struct snd_kcontrol_new max9768_mute[] = { > + SOC_SINGLE_BOOL_EXT("Mute Switch", 0, max9768_get_gpio, max9768_set_gpio), > +}; Should be "Playback Switch" to match the volume control - that way userspace can present a single control to applications. > +static bool max9768_always_false(struct device *dev, unsigned int reg) > +{ > + return false; > +} This should be the default in regmap for formats that use format_write (and hence can't read back), please fix in regmap rather than add this. > + if (pdata) { > + /* Mute on powerup to avoid clicks */ > + err = gpio_request_one(pdata->mute_gpio, GPIOF_INIT_HIGH, "MAX9768 Mute"); This need to avoid clicks is the reason I was asking for the DAPM stuff. > + /* Activate chip by releasing shutdown, enables I2C */ > + err = gpio_request_one(pdata->shdn_gpio, GPIOF_INIT_HIGH, "MAX9768 Shutdown"); > + max9768->shdn_gpio = err ?: pdata->shdn_gpio; Eeew.