diff mbox series

soc: ti: omap-prm: Do not check rstst bit on deassert if already deasserted

Message ID 20201110110446.64837-1-tony@atomide.com (mailing list archive)
State New
Headers show
Series soc: ti: omap-prm: Do not check rstst bit on deassert if already deasserted | expand

Commit Message

Tony Lindgren Nov. 10, 2020, 11:04 a.m. UTC
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>
---

I found this with the genpd conversion, probably can wait for the merge
window and be merged together with the other pending omap_prm.c changes
I have posted.

---
 drivers/soc/ti/omap_prm.c | 4 ++++
 1 file changed, 4 insertions(+)
diff mbox series

Patch

diff --git a/drivers/soc/ti/omap_prm.c b/drivers/soc/ti/omap_prm.c
--- a/drivers/soc/ti/omap_prm.c
+++ b/drivers/soc/ti/omap_prm.c
@@ -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);