soc: ti: omap-prm: Do not check rstst bit on deassert if already deasserted
authorTony Lindgren <tony@atomide.com>
Mon, 16 Nov 2020 10:57:13 +0000 (12:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:53:09 +0000 (11:53 +0100)
[ Upstream commit c1995e5afaf6abf3922b5395ad1f4096951e3276 ]

If a rstctrl reset bit is already deasserted, we can just bail out early
not wait for rstst to clear. Otherwise we can have deassert fail for
already deasserted resets.

Fixes: c5117a78dd88 ("soc: ti: omap-prm: poll for reset complete during de-assert")
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/ti/omap_prm.c

index 980b04c..4d41dc3 100644 (file)
@@ -484,6 +484,10 @@ static int omap_reset_deassert(struct reset_controller_dev *rcdev,
        struct ti_prm_platform_data *pdata = dev_get_platdata(reset->dev);
        int ret = 0;
 
+       /* Nothing to do if the reset is already deasserted */
+       if (!omap_reset_status(rcdev, id))
+               return 0;
+
        has_rstst = reset->prm->data->rstst ||
                (reset->prm->data->flags & OMAP_PRM_HAS_RSTST);