lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 266/334] ASoC: wcd9335: Disable irq on slave ports in the remove function
    Date
    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    [ Upstream commit d3efd26af2e044ff2b48d38bb871630282d77e60 ]

    The probe calls 'wcd9335_setup_irqs()' to enable interrupts on all slave
    ports.
    This must be undone in the remove function.

    Add a 'wcd9335_teardown_irqs()' function that undoes 'wcd9335_setup_irqs()'
    function, and call it from the remove function.

    Fixes: 20aedafdf492 ("ASoC: wcd9335: add support to wcd9335 codec")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Message-Id: <8f761244d79bd4c098af8a482be9121d3a486d1b.1629091028.git.christophe.jaillet@wanadoo.fr>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/codecs/wcd9335.c | 11 +++++++++++
    1 file changed, 11 insertions(+)

    diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c
    index 47fe68edea3a..d885ced34f60 100644
    --- a/sound/soc/codecs/wcd9335.c
    +++ b/sound/soc/codecs/wcd9335.c
    @@ -4076,6 +4076,16 @@ static int wcd9335_setup_irqs(struct wcd9335_codec *wcd)
    return ret;
    }

    +static void wcd9335_teardown_irqs(struct wcd9335_codec *wcd)
    +{
    + int i;
    +
    + /* disable interrupts on all slave ports */
    + for (i = 0; i < WCD9335_SLIM_NUM_PORT_REG; i++)
    + regmap_write(wcd->if_regmap, WCD9335_SLIM_PGD_PORT_INT_EN0 + i,
    + 0x00);
    +}
    +
    static void wcd9335_cdc_sido_ccl_enable(struct wcd9335_codec *wcd,
    bool ccl_flag)
    {
    @@ -4878,6 +4888,7 @@ static void wcd9335_codec_remove(struct snd_soc_component *comp)
    struct wcd9335_codec *wcd = dev_get_drvdata(comp->dev);

    wcd_clsh_ctrl_free(wcd->clsh_ctrl);
    + wcd9335_teardown_irqs(wcd);
    }

    static int wcd9335_codec_set_sysclk(struct snd_soc_component *comp,
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-13 16:46    [W:7.929 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site