Commit c5117a78 authored by Tero Kristo's avatar Tero Kristo Committed by Santosh Shilimkar
Browse files

soc: ti: omap-prm: poll for reset complete during de-assert



Poll for reset completion status during de-assertion of reset, otherwise
the IP in question might be accessed before it has left reset properly.

Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Reviewed-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
Reviewed-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@oracle.com>
parent 3e99cb21
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -152,6 +152,18 @@ static int omap_reset_deassert(struct reset_controller_dev *rcdev,
	writel_relaxed(v, reset->prm->base + reset->prm->data->rstctrl);
	spin_unlock_irqrestore(&reset->lock, flags);

	if (!has_rstst)
		return 0;

	/* wait for the status to be set */
	ret = readl_relaxed_poll_timeout(reset->prm->base +
					 reset->prm->data->rstst,
					 v, v & BIT(st_bit), 1,
					 OMAP_RESET_MAX_WAIT);
	if (ret)
		pr_err("%s: timedout waiting for %s:%lu\n", __func__,
		       reset->prm->data->name, id);

	return 0;
}