lkml.org 
[lkml]   [2023]   [Oct]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 6.5 37/52] ASoC: da7219: Correct the process of setting up Gnd switch in AAD
    Date
    From: David Rau <David.Rau.opensource@dm.renesas.com>

    [ Upstream commit e8ecffd9962fe051d53a0761921b26d653b3df6b ]

    Enable Gnd switch to improve stability when Jack insert event
    occurs, and then disable Gnd switch after Jack type detection
    is finished.

    Signed-off-by: David Rau <David.Rau.opensource@dm.renesas.com>
    Link: https://lore.kernel.org/r/20231017021258.5929-1-David.Rau.opensource@dm.renesas.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/codecs/da7219-aad.c | 11 +++++------
    1 file changed, 5 insertions(+), 6 deletions(-)

    diff --git a/sound/soc/codecs/da7219-aad.c b/sound/soc/codecs/da7219-aad.c
    index 581b334a6631d..3bbe850916493 100644
    --- a/sound/soc/codecs/da7219-aad.c
    +++ b/sound/soc/codecs/da7219-aad.c
    @@ -59,9 +59,6 @@ static void da7219_aad_btn_det_work(struct work_struct *work)
    bool micbias_up = false;
    int retries = 0;

    - /* Disable ground switch */
    - snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
    -
    /* Drive headphones/lineout */
    snd_soc_component_update_bits(component, DA7219_HP_L_CTRL,
    DA7219_HP_L_AMP_OE_MASK,
    @@ -155,9 +152,6 @@ static void da7219_aad_hptest_work(struct work_struct *work)
    tonegen_freq_hptest = cpu_to_le16(DA7219_AAD_HPTEST_RAMP_FREQ_INT_OSC);
    }

    - /* Disable ground switch */
    - snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
    -
    /* Ensure gain ramping at fastest rate */
    gain_ramp_ctrl = snd_soc_component_read(component, DA7219_GAIN_RAMP_CTRL);
    snd_soc_component_write(component, DA7219_GAIN_RAMP_CTRL, DA7219_GAIN_RAMP_RATE_X8);
    @@ -421,6 +415,11 @@ static irqreturn_t da7219_aad_irq_thread(int irq, void *data)
    * handle a removal, and we can check at the end of
    * hptest if we have a valid result or not.
    */
    +
    + cancel_delayed_work_sync(&da7219_aad->jack_det_work);
    + /* Disable ground switch */
    + snd_soc_component_update_bits(component, 0xFB, 0x01, 0x00);
    +
    if (statusa & DA7219_JACK_TYPE_STS_MASK) {
    report |= SND_JACK_HEADSET;
    mask |= SND_JACK_HEADSET | SND_JACK_LINEOUT;
    --
    2.42.0
    \
     
     \ /
      Last update: 2023-10-29 23:58    [W:4.404 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site