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.za...@pengutronix.de>
---
 .../crypto/allwinner/sun4i-ss/sun4i-ss-core.c | 21 +++++++------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c 
b/drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c
index 709905ec4680..ef224d5e4903 100644
--- a/drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c
+++ b/drivers/crypto/allwinner/sun4i-ss/sun4i-ss-core.c
@@ -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
-- 
2.29.2

Reply via email to