OSDN Git Service

ASoC: dwc-i2s: Handle errors for clk_enable
authorJiasheng Jiang <jiasheng@iscas.ac.cn>
Tue, 1 Mar 2022 08:47:42 +0000 (16:47 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 2 Mar 2022 13:45:24 +0000 (13:45 +0000)
As the potential failure of the clk_enable(),
it should be better to check it, as same as clk_prepare_enable().

Fixes: c9afc1834e81 ("ASoC: dwc: Disallow building designware_pcm as a module")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Link: https://lore.kernel.org/r/20220301084742.3751939-1-jiasheng@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/dwc/dwc-i2s.c

index 5cb5892..1edac3e 100644 (file)
@@ -403,9 +403,13 @@ static int dw_i2s_runtime_suspend(struct device *dev)
 static int dw_i2s_runtime_resume(struct device *dev)
 {
        struct dw_i2s_dev *dw_dev = dev_get_drvdata(dev);
+       int ret;
 
-       if (dw_dev->capability & DW_I2S_MASTER)
-               clk_enable(dw_dev->clk);
+       if (dw_dev->capability & DW_I2S_MASTER) {
+               ret = clk_enable(dw_dev->clk);
+               if (ret)
+                       return ret;
+       }
        return 0;
 }
 
@@ -422,10 +426,13 @@ static int dw_i2s_resume(struct snd_soc_component *component)
 {
        struct dw_i2s_dev *dev = snd_soc_component_get_drvdata(component);
        struct snd_soc_dai *dai;
-       int stream;
+       int stream, ret;
 
-       if (dev->capability & DW_I2S_MASTER)
-               clk_enable(dev->clk);
+       if (dev->capability & DW_I2S_MASTER) {
+               ret = clk_enable(dev->clk);
+               if (ret)
+                       return ret;
+       }
 
        for_each_component_dais(component, dai) {
                for_each_pcm_streams(stream)