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 253/334] ASoC: wm_adsp: Put debugfs_remove_recursive back in
    Date
    From: Charles Keepax <ckeepax@opensource.cirrus.com>

    [ Upstream commit e6d0b92ac00b53121a35b2a1ce8d393dc9179fdf ]

    This patch reverts commit acbf58e53041 ("ASoC: wm_adsp: Let
    soc_cleanup_component_debugfs remove debugfs"), and adds an
    alternate solution to the issue. That patch removes the call to
    debugfs_remove_recursive, which cleans up the DSPs debugfs. The
    intention was to avoid an unbinding issue on an out of tree
    driver/platform.

    The issue with the patch is it means the driver no longer cleans up
    its own debugfs, instead relying on ASoC to remove recurive on the
    parent debugfs node. This is conceptually rather unclean, but also it
    would prevent DSPs being added/removed independently of ASoC and soon
    we are going to be upstreaming some non-audio parts with these DSPs,
    which will require this.

    Finally, it seems the issue on the platform is a result of the
    wm_adsp2_cleanup_debugfs getting called twice. This is very likely a
    problem on the platform side and will be resolved there. But in the mean
    time make the code a little more robust to such issues, and again
    conceptually a bit nicer, but clearing the debugfs_root variable in the
    DSP structure when the debugfs is removed.

    Fixes: acbf58e53041 ("ASoC: wm_adsp: Let soc_cleanup_component_debugfs remove debugfs"
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20210824101552.1119-1-ckeepax@opensource.cirrus.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/codecs/wm_adsp.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c
    index fe15cbc7bcaf..a4d4cbf716a1 100644
    --- a/sound/soc/codecs/wm_adsp.c
    +++ b/sound/soc/codecs/wm_adsp.c
    @@ -747,6 +747,8 @@ static void wm_adsp2_init_debugfs(struct wm_adsp *dsp,
    static void wm_adsp2_cleanup_debugfs(struct wm_adsp *dsp)
    {
    wm_adsp_debugfs_clear(dsp);
    + debugfs_remove_recursive(dsp->debugfs_root);
    + dsp->debugfs_root = NULL;
    }
    #else
    static inline void wm_adsp2_init_debugfs(struct wm_adsp *dsp,
    --
    2.30.2


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