power/reset: xgene: Use mdelay instead of jiffies based timeout
jiffies are not running at this stage of system shutdown, meaning an error in the reset function would never be reported. Replace with mdelay(). Cc: Loc Ho <lho@apm.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
43160718d9
commit
745e19764a
1 changed files with 2 additions and 4 deletions
|
@ -24,6 +24,7 @@
|
||||||
* For system shutdown, this is board specify. If a board designer
|
* For system shutdown, this is board specify. If a board designer
|
||||||
* implements GPIO shutdown, use the gpio-poweroff.c driver.
|
* implements GPIO shutdown, use the gpio-poweroff.c driver.
|
||||||
*/
|
*/
|
||||||
|
#include <linux/delay.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
#include <linux/of_address.h>
|
#include <linux/of_address.h>
|
||||||
|
@ -43,15 +44,12 @@ static struct xgene_reboot_context *xgene_restart_ctx;
|
||||||
static void xgene_restart(enum reboot_mode mode, const char *cmd)
|
static void xgene_restart(enum reboot_mode mode, const char *cmd)
|
||||||
{
|
{
|
||||||
struct xgene_reboot_context *ctx = xgene_restart_ctx;
|
struct xgene_reboot_context *ctx = xgene_restart_ctx;
|
||||||
unsigned long timeout;
|
|
||||||
|
|
||||||
/* Issue the reboot */
|
/* Issue the reboot */
|
||||||
if (ctx)
|
if (ctx)
|
||||||
writel(ctx->mask, ctx->csr);
|
writel(ctx->mask, ctx->csr);
|
||||||
|
|
||||||
timeout = jiffies + HZ;
|
mdelay(1000);
|
||||||
while (time_before(jiffies, timeout))
|
|
||||||
cpu_relax();
|
|
||||||
|
|
||||||
dev_emerg(ctx->dev, "Unable to restart system\n");
|
dev_emerg(ctx->dev, "Unable to restart system\n");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue