Message ID | 1556110286-1526-3-git-send-email-fabien.dessenne@st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: adc: stm32-dfsdm: manage error cases in probe | expand |
On 4/24/19 2:51 PM, Fabien Dessenne wrote: > During probe, check the devm_ioremap_resource() error value. > Also return the devm_clk_get() error value instead of -EINVAL. > > Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> > --- Hi Fabien, Acked-by: Fabrice Gasnier <fabrice.gasnier@st.com> Thanks, Fabrice > drivers/iio/adc/stm32-dfsdm-core.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/adc/stm32-dfsdm-core.c b/drivers/iio/adc/stm32-dfsdm-core.c > index 0a4d374..26e2011 100644 > --- a/drivers/iio/adc/stm32-dfsdm-core.c > +++ b/drivers/iio/adc/stm32-dfsdm-core.c > @@ -233,6 +233,8 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, > } > priv->dfsdm.phys_base = res->start; > priv->dfsdm.base = devm_ioremap_resource(&pdev->dev, res); > + if (IS_ERR(priv->dfsdm.base)) > + return PTR_ERR(priv->dfsdm.base); > > /* > * "dfsdm" clock is mandatory for DFSDM peripheral clocking. > @@ -242,8 +244,10 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, > */ > priv->clk = devm_clk_get(&pdev->dev, "dfsdm"); > if (IS_ERR(priv->clk)) { > - dev_err(&pdev->dev, "No stm32_dfsdm_clk clock found\n"); > - return -EINVAL; > + ret = PTR_ERR(priv->clk); > + if (ret != -EPROBE_DEFER) > + dev_err(&pdev->dev, "Failed to get clock (%d)\n", ret); > + return ret; > } > > priv->aclk = devm_clk_get(&pdev->dev, "audio"); >
On Wed, 24 Apr 2019 14:55:28 +0200 Fabrice Gasnier <fabrice.gasnier@st.com> wrote: > On 4/24/19 2:51 PM, Fabien Dessenne wrote: > > During probe, check the devm_ioremap_resource() error value. > > Also return the devm_clk_get() error value instead of -EINVAL. > > > > Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> > > --- > > > Hi Fabien, > > Acked-by: Fabrice Gasnier <fabrice.gasnier@st.com> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > > Thanks, > Fabrice > > > drivers/iio/adc/stm32-dfsdm-core.c | 8 ++++++-- > > 1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/iio/adc/stm32-dfsdm-core.c b/drivers/iio/adc/stm32-dfsdm-core.c > > index 0a4d374..26e2011 100644 > > --- a/drivers/iio/adc/stm32-dfsdm-core.c > > +++ b/drivers/iio/adc/stm32-dfsdm-core.c > > @@ -233,6 +233,8 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, > > } > > priv->dfsdm.phys_base = res->start; > > priv->dfsdm.base = devm_ioremap_resource(&pdev->dev, res); > > + if (IS_ERR(priv->dfsdm.base)) > > + return PTR_ERR(priv->dfsdm.base); > > > > /* > > * "dfsdm" clock is mandatory for DFSDM peripheral clocking. > > @@ -242,8 +244,10 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, > > */ > > priv->clk = devm_clk_get(&pdev->dev, "dfsdm"); > > if (IS_ERR(priv->clk)) { > > - dev_err(&pdev->dev, "No stm32_dfsdm_clk clock found\n"); > > - return -EINVAL; > > + ret = PTR_ERR(priv->clk); > > + if (ret != -EPROBE_DEFER) > > + dev_err(&pdev->dev, "Failed to get clock (%d)\n", ret); > > + return ret; > > } > > > > priv->aclk = devm_clk_get(&pdev->dev, "audio"); > >
diff --git a/drivers/iio/adc/stm32-dfsdm-core.c b/drivers/iio/adc/stm32-dfsdm-core.c index 0a4d374..26e2011 100644 --- a/drivers/iio/adc/stm32-dfsdm-core.c +++ b/drivers/iio/adc/stm32-dfsdm-core.c @@ -233,6 +233,8 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, } priv->dfsdm.phys_base = res->start; priv->dfsdm.base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(priv->dfsdm.base)) + return PTR_ERR(priv->dfsdm.base); /* * "dfsdm" clock is mandatory for DFSDM peripheral clocking. @@ -242,8 +244,10 @@ static int stm32_dfsdm_parse_of(struct platform_device *pdev, */ priv->clk = devm_clk_get(&pdev->dev, "dfsdm"); if (IS_ERR(priv->clk)) { - dev_err(&pdev->dev, "No stm32_dfsdm_clk clock found\n"); - return -EINVAL; + ret = PTR_ERR(priv->clk); + if (ret != -EPROBE_DEFER) + dev_err(&pdev->dev, "Failed to get clock (%d)\n", ret); + return ret; } priv->aclk = devm_clk_get(&pdev->dev, "audio");
During probe, check the devm_ioremap_resource() error value. Also return the devm_clk_get() error value instead of -EINVAL. Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com> --- drivers/iio/adc/stm32-dfsdm-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)