spi: stm32: defer probe for reset
authorAlain Volmat <alain.volmat@foss.st.com>
Fri, 5 Feb 2021 18:59:30 +0000 (19:59 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 5 Feb 2021 19:16:59 +0000 (19:16 +0000)
Defer the probe operation when a reset controller device is expected
but have not yet been probed.

This change replaces use of devm_reset_control_get_exclusive() with
devm_reset_control_get_optional_exclusive() as reset controller is
optional which is now explicitly stated.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
Link: https://lore.kernel.org/r/1612551572-495-7-git-send-email-alain.volmat@foss.st.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-stm32.c

index 5612348..54196ce 100644 (file)
@@ -1871,8 +1871,14 @@ static int stm32_spi_probe(struct platform_device *pdev)
                goto err_clk_disable;
        }
 
-       rst = devm_reset_control_get_exclusive(&pdev->dev, NULL);
-       if (!IS_ERR(rst)) {
+       rst = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL);
+       if (rst) {
+               if (IS_ERR(rst)) {
+                       ret = dev_err_probe(&pdev->dev, PTR_ERR(rst),
+                                           "failed to get reset\n");
+                       goto err_clk_disable;
+               }
+
                reset_control_assert(rst);
                udelay(2);
                reset_control_deassert(rst);