lkml.org 
[lkml]   [2020]   [Nov]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 080/391] ASoC: SOF: fix a runtime pm issue in SOF when HDMI codec doesnt work
    Date
    From: Rander Wang <rander.wang@intel.com>

    [ Upstream commit 6c63c954e1c52f1262f986f36d95f557c6f8fa94 ]

    When hda_codec_probe() doesn't initialize audio component, we disable
    the codec and keep going. However,the resources are not released. The
    child_count of SOF device is increased in snd_hdac_ext_bus_device_init
    but is not decrease in error case, so SOF can't get suspended.

    snd_hdac_ext_bus_device_exit will be invoked in HDA framework if it
    gets a error. Now copy this behavior to release resources and decrease
    SOF device child_count to release SOF device.

    Signed-off-by: Rander Wang <rander.wang@intel.com>
    Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
    Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
    Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
    Link: https://lore.kernel.org/r/20200825235040.1586478-3-ranjani.sridharan@linux.intel.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    sound/soc/sof/intel/hda-codec.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
    index 2c5c451fa19d7..c475955c6eeba 100644
    --- a/sound/soc/sof/intel/hda-codec.c
    +++ b/sound/soc/sof/intel/hda-codec.c
    @@ -151,7 +151,7 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address,
    if (!hdev->bus->audio_component) {
    dev_dbg(sdev->dev,
    "iDisp hw present but no driver\n");
    - return -ENOENT;
    + goto error;
    }
    hda_priv->need_display_power = true;
    }
    @@ -174,7 +174,7 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address,
    * other return codes without modification
    */
    if (ret == 0)
    - ret = -ENOENT;
    + goto error;
    }

    return ret;
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-03 21:41    [W:5.297 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site