• Charles Keepax's avatar
    ASoC: dapm: Move error handling to snd_soc_dapm_new_control_unlocked · 3bbf5d34
    Charles Keepax authored
    Currently DAPM has a lot of similar code to handle errors from
    snd_soc_dapm_new_control_unlocked, and much of this code does
    not really accurately reflect what the function returns.
    
    Firstly, most places will check for a return value of
    -EPROBE_DEFER and silence any error messages in that case. The
    one notable exception here being dapm_kcontrol_data_alloc
    which does currently print any error messages in the case
    of snd_soc_dapm_new_control_unlocked returning NULL or an
    error. Additionally the error prints being silenced in these
    case are redundant as snd_soc_dapm_new_control_unlocked can
    only return -EPROBE_DEFER or NULL when failing.
    
    Secondly, most places will treat a return value of NULL as
    an -ENOMEM.  This is not correct either since any error except
    EPROBE_DEFER will cause a return value of NULL from
    snd_soc_dapm_new_control_unlocked.
    
    Centralise this handling and the error messages within
    snd_soc_dapm_new_control_unlocked and update the callers
    to simply check IS_ERR and return. Note that this update is
    slightly simpler in the case of dapm_kcontrol_data_alloc where
    that is fairly close to the handling that was already in place.
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    3bbf5d34
soc-dapm.c 113 KB