[alsa-devel] [PATCH] ASoC: max98090: add shutdown callback for max98090

Jianqun xjq at rock-chips.com
Fri Apr 10 02:46:44 CEST 2015


Hi Anish Kumar

在 04/10/2015 03:38 AM, Anish Kumar 写道:
>> To fix pop noise when shutdown,the pop noise during shutdown
>> is the pmic cutoff power of codec without any notice.
> Is the power turned off without any intimation to the codec driver?
> Or is it physically removed? Can you describe the probelm 
> better?
When device is shutdown with playing music, the origin driver does nothing for shutdown operation,
as a result, pmic will cut off the power of codec IC, thus cause a pop noise from speaker and headphone.

So the patch added a shutdown callback for driver, enable volume smoothing and disable zero cross,
this is referenced from mic_input which does the samething before mic switch.

I'm very happy if some suggestion from maximintegrate . :-)
>
> +static void max98090_i2c_shutdown(struct i2c_client *i2c)
> +{
> +       struct max98090_priv *max98090 = dev_get_drvdata(&i2c->dev);
> +
> +       dev_info(&i2c->dev, "shut down device\n");
> +
> +       /* Enable volume smoothing, disable zero cross.  This will cause
> +        * a quick 40ms ramp to mute on shutdown.
> +        */
> +       regmap_write(max98090->regmap,
> +               M98090_REG_LEVEL_CONTROL, M98090_VSENN_MASK);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_DEVICE_SHUTDOWN, 0x00);
> +       msleep(40);
> +}
> +
>
>




More information about the Alsa-devel mailing list