crypto: sun4i-ss - simplify optional reset handling
authorPhilipp Zabel <p.zabel@pengutronix.de>
Fri, 5 Mar 2021 09:12:36 +0000 (10:12 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 12 Mar 2021 13:04:07 +0000 (00:04 +1100)
As of commit bb475230b8e5 ("reset: make optional functions really
optional"), the reset framework API calls use NULL pointers to describe
optional, non-present reset controls.

This allows to unconditionally return errors from
devm_reset_control_get_optional_exclusive.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c

index 709905e..ef224d5 100644 (file)
@@ -288,8 +288,7 @@ static int sun4i_ss_pm_suspend(struct device *dev)
 {
        struct sun4i_ss_ctx *ss = dev_get_drvdata(dev);
 
-       if (ss->reset)
-               reset_control_assert(ss->reset);
+       reset_control_assert(ss->reset);
 
        clk_disable_unprepare(ss->ssclk);
        clk_disable_unprepare(ss->busclk);
@@ -314,12 +313,10 @@ static int sun4i_ss_pm_resume(struct device *dev)
                goto err_enable;
        }
 
-       if (ss->reset) {
-               err = reset_control_deassert(ss->reset);
-               if (err) {
-                       dev_err(ss->dev, "Cannot deassert reset control\n");
-                       goto err_enable;
-               }
+       err = reset_control_deassert(ss->reset);
+       if (err) {
+               dev_err(ss->dev, "Cannot deassert reset control\n");
+               goto err_enable;
        }
 
        return err;
@@ -401,12 +398,10 @@ static int sun4i_ss_probe(struct platform_device *pdev)
        dev_dbg(&pdev->dev, "clock ahb_ss acquired\n");
 
        ss->reset = devm_reset_control_get_optional(&pdev->dev, "ahb");
-       if (IS_ERR(ss->reset)) {
-               if (PTR_ERR(ss->reset) == -EPROBE_DEFER)
-                       return PTR_ERR(ss->reset);
+       if (IS_ERR(ss->reset))
+               return PTR_ERR(ss->reset);
+       if (!ss->reset)
                dev_info(&pdev->dev, "no reset control found\n");
-               ss->reset = NULL;
-       }
 
        /*
         * Check that clock have the correct rates given in the datasheet