i2c: stm32: don't print an error on probe deferral
authorEtienne Carriere <etienne.carriere@st.com>
Mon, 20 Apr 2020 15:17:06 +0000 (17:17 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Sun, 26 Apr 2020 07:46:39 +0000 (09:46 +0200)
Do not print an error trace when deferring probe for some resource.
Fix as well the error message in case of tx dma_request_chan failure.

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Signed-off-by: Alain Volmat <alain.volmat@st.com>
Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-stm32.c
drivers/i2c/busses/i2c-stm32f4.c
drivers/i2c/busses/i2c-stm32f7.c

index 1da347e..3f69a3b 100644 (file)
@@ -25,8 +25,9 @@ struct stm32_i2c_dma *stm32_i2c_dma_request(struct device *dev,
        /* Request and configure I2C TX dma channel */
        dma->chan_tx = dma_request_chan(dev, "tx");
        if (IS_ERR(dma->chan_tx)) {
-               dev_dbg(dev, "can't request DMA tx channel\n");
                ret = PTR_ERR(dma->chan_tx);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(dev, "can't request DMA tx channel\n");
                goto fail_al;
        }
 
@@ -44,8 +45,10 @@ struct stm32_i2c_dma *stm32_i2c_dma_request(struct device *dev,
        /* Request and configure I2C RX dma channel */
        dma->chan_rx = dma_request_chan(dev, "rx");
        if (IS_ERR(dma->chan_rx)) {
-               dev_err(dev, "can't request DMA rx channel\n");
                ret = PTR_ERR(dma->chan_rx);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(dev, "can't request DMA rx channel\n");
+
                goto fail_tx;
        }
 
@@ -73,7 +76,8 @@ fail_tx:
        dma_release_channel(dma->chan_tx);
 fail_al:
        devm_kfree(dev, dma);
-       dev_info(dev, "can't use DMA\n");
+       if (ret != -EPROBE_DEFER)
+               dev_info(dev, "can't use DMA\n");
 
        return ERR_PTR(ret);
 }
index d6a69df..48e2692 100644 (file)
@@ -797,8 +797,10 @@ static int stm32f4_i2c_probe(struct platform_device *pdev)
 
        rst = devm_reset_control_get_exclusive(&pdev->dev, NULL);
        if (IS_ERR(rst)) {
-               dev_err(&pdev->dev, "Error: Missing controller reset\n");
                ret = PTR_ERR(rst);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "Error: Missing reset ctrl\n");
+
                goto clk_free;
        }
        reset_control_assert(rst);
index 8102e33..59a0dcd 100644 (file)
@@ -1967,7 +1967,8 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
 
        i2c_dev->clk = devm_clk_get(&pdev->dev, NULL);
        if (IS_ERR(i2c_dev->clk)) {
-               dev_err(&pdev->dev, "Error: Missing controller clock\n");
+               if (PTR_ERR(i2c_dev->clk) != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "Failed to get controller clock\n");
                return PTR_ERR(i2c_dev->clk);
        }
 
@@ -1979,8 +1980,10 @@ static int stm32f7_i2c_probe(struct platform_device *pdev)
 
        rst = devm_reset_control_get(&pdev->dev, NULL);
        if (IS_ERR(rst)) {
-               dev_err(&pdev->dev, "Error: Missing controller reset\n");
                ret = PTR_ERR(rst);
+               if (ret != -EPROBE_DEFER)
+                       dev_err(&pdev->dev, "Error: Missing reset ctrl\n");
+
                goto clk_free;
        }
        reset_control_assert(rst);