diff options
author | Alain Volmat <alain.volmat@foss.st.com> | 2021-02-05 19:59:30 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-02-05 19:16:59 +0000 |
commit | c63b95b76e69b679b9b95014552db099eb77a4fa (patch) | |
tree | 4557a88d934ba65b878e6cc6885aeea0e46e1921 /drivers/spi | |
parent | 1c75cfd53e213044523141b464eb06813e39ecea (diff) | |
download | linux-c63b95b76e69b679b9b95014552db099eb77a4fa.tar.bz2 |
spi: stm32: defer probe for reset
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>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/spi-stm32.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/spi/spi-stm32.c b/drivers/spi/spi-stm32.c index 561234829110..54196cecfe2e 100644 --- a/drivers/spi/spi-stm32.c +++ b/drivers/spi/spi-stm32.c @@ -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); |