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

Caesar Wang wxt at rock-chips.com
Thu Apr 16 05:40:30 CEST 2015



在 2015年04月16日 10:41, Anish Kumar 写道:
> 在 2015年04月16日 05:14, 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 . :-)
>> Please let me know if the patch worked for you.
>> Yes, the patch can work for me.
> I hope this patch is what you tested.
>
> +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 zero crossing */
> +       regmap_write(max98090->regmap,
> +               M98090_REG_LEVEL_CONTROL, M98090_ZDENN_MASK-1);
> +
> +       /* turn down volume levels for all the outputs */
> +       regmap_write(max98090->regmap,
> +               M98090_REG_RCV_LOUTL_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_LOUTR_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_LEFT_SPK_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_RIGHT_SPK_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_LEFT_HP_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_RIGHT_HP_VOLUME, 0x00);
> +       regmap_write(max98090->regmap,
> +               M98090_REG_DEVICE_SHUTDOWN, 0x00);
> +       msleep(40);
> +}
> +
> Please go ahead and submit to Mark.
With the about is also useful to solve it.

@zengxing, could you also help verify it?
>> We had tested on chromiumos.
>>> +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);
>>> +}
>>> +
>>>
>>>
>>
>>
>>
> --
> **************************************************************************************
> 王晓腾    Caesar Wang
> Product R&D Dept.III
> Fuzhou Rockchip Electronics Co.Ltd
> Addr:  NO.18 Building, A District, Fuzhou Software Park,Gulou District,Fuzhou, Fujian,China(Fuzhou Headquarters)
>                 21F,Malata Building,Kejizhongyi Avenue,Nanshan District,Shenzhen  (Shenzhen Office)
> Tel:+86-591-83991906/07 - 8221
> Mobile:+86 15059456742
> E-mail : wxt at rock-chips.com
> ***************************************************************************************
> ***************************************************************************************
> IMPORTANT NOTICE: This email is from Fuzhou Rockchip Electronics Co., Ltd .The contents of this email and any attachments may
> contain information that is privileged, confidential and/or exempt from disclosure under applicable law and relevant NDA.
> If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the
> information is STRICTLY PROHIBITED. Please immediately contact the sender as soon as possible and destroy the material
> in its entirety in any format. Thank you.
> ***************************************************************************************
>

-- 
**************************************************************************************
王晓腾    Caesar Wang
Product R&D Dept.III
Fuzhou Rockchip Electronics Co.Ltd
Addr:  NO.18 Building, A District, Fuzhou Software Park,Gulou District,Fuzhou, Fujian,China(Fuzhou Headquarters)
               21F,Malata Building,Kejizhongyi Avenue,Nanshan District,Shenzhen  (Shenzhen Office)
Tel:+86-591-83991906/07 - 8221
Mobile:+86 15059456742
E-mail : wxt at rock-chips.com
***************************************************************************************
***************************************************************************************
IMPORTANT NOTICE: This email is from Fuzhou Rockchip Electronics Co., Ltd .The contents of this email and any attachments may
contain information that is privileged, confidential and/or exempt from disclosure under applicable law and relevant NDA.
If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the
information is STRICTLY PROHIBITED. Please immediately contact the sender as soon as possible and destroy the material
in its entirety in any format. Thank you.
***************************************************************************************




More information about the Alsa-devel mailing list