• Nicolin Chen's avatar
    ASoC: imx-spdif: Use snd-soc-dummy CODEC driver to link card · 14c3aa98
    Nicolin Chen authored
    This is a quick fix for the below two issues when building spdif as modules.
    
    1) If modprobing modules in order: (Step 1) snd-soc-fsl-spdif -> (Step 2)
    snd-soc-imx-spdif -> (Step 3) snd-soc-spdif-tx/rx, we will fail to create
    imx-spdif card and dai link unless we rmmod snd-soc-imx-spdif and modprobe
    it again due to the execution platform_driver_unregister() in probe() when
    meeting -EPROBE_DEFER at Step 2.
    
    2) After "imx-spdif sound-spdif.17: dit-hifi <-> 2004000.spdif mapping ok",
    'rmmod snd-soc-imx-spdif' would cause kernel dump with warning:
    WARNING: CPU: 0 PID: 1301 at /home/rmk/git/linux-rmk/fs/sysfs/dir.c:915 sysfs_hash_and_remove+0x84/0x90()
    sysfs: can not remove 'dapm_widget', no directory
    This should be caused by disordered resourse releasing of the whole link.
    And trying to unregister the card and then CODEC dev can't fix this issue.
    
    Thus this patch just provides a simple fix to these two bugs by using the
    snd-soc-dummy in the core instead of seperate snd-soc-spdif-tx/rx so that
    there's no need to handle the registering and unregistering of CODEC or
    CODEC dai any more.
    Signed-off-by: default avatarNicolin Chen <Guangyu.Chen@freescale.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    14c3aa98
imx-spdif.c 2.54 KB