• Charles Keepax's avatar
    ASoC: wm_adsp: Put debugfs_remove_recursive back in · e6d0b92a
    Charles Keepax authored
    This patch reverts commit acbf58e5 ("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: acbf58e5 ("ASoC: wm_adsp: Let soc_cleanup_component_debugfs remove debugfs"
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Link: https://lore.kernel.org/r/20210824101552.1119-1-ckeepax@opensource.cirrus.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    e6d0b92a
wm_adsp.c 113 KB