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);
+}