diff options
| author | Ingo Molnar <[email protected]> | 2020-02-24 11:36:09 +0100 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2020-02-24 11:36:09 +0100 |
| commit | 546121b65f47384e11ec1fa2e55449fc9f4846b2 (patch) | |
| tree | 8f18470ec7c0c77b0f48eb1b2338e591b0b0aaff /drivers/iio/dac/stm32-dac-core.c | |
| parent | 000619680c3714020ce9db17eef6a4a7ce2dc28b (diff) | |
| parent | f8788d86ab28f61f7b46eb6be375f8a726783636 (diff) | |
Merge tag 'v5.6-rc3' into sched/core, to pick up fixes and dependent patches
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'drivers/iio/dac/stm32-dac-core.c')
| -rw-r--r-- | drivers/iio/dac/stm32-dac-core.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/iio/dac/stm32-dac-core.c b/drivers/iio/dac/stm32-dac-core.c index 9e6b4cd0a5cc..7e5809ba0dee 100644 --- a/drivers/iio/dac/stm32-dac-core.c +++ b/drivers/iio/dac/stm32-dac-core.c @@ -20,13 +20,11 @@ /** * struct stm32_dac_priv - stm32 DAC core private data * @pclk: peripheral clock common for all DACs - * @rst: peripheral reset control * @vref: regulator reference * @common: Common data for all DAC instances */ struct stm32_dac_priv { struct clk *pclk; - struct reset_control *rst; struct regulator *vref; struct stm32_dac_common common; }; @@ -94,6 +92,7 @@ static int stm32_dac_probe(struct platform_device *pdev) struct regmap *regmap; struct resource *res; void __iomem *mmio; + struct reset_control *rst; int ret; if (!dev->of_node) @@ -148,11 +147,19 @@ static int stm32_dac_probe(struct platform_device *pdev) priv->common.vref_mv = ret / 1000; dev_dbg(dev, "vref+=%dmV\n", priv->common.vref_mv); - priv->rst = devm_reset_control_get_exclusive(dev, NULL); - if (!IS_ERR(priv->rst)) { - reset_control_assert(priv->rst); + rst = devm_reset_control_get_optional_exclusive(dev, NULL); + if (rst) { + if (IS_ERR(rst)) { + ret = PTR_ERR(rst); + if (ret != -EPROBE_DEFER) + dev_err(dev, "reset get failed, %d\n", ret); + + goto err_hw_stop; + } + + reset_control_assert(rst); udelay(2); - reset_control_deassert(priv->rst); + reset_control_deassert(rst); } if (cfg && cfg->has_hfsel) { |