From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl0-x244.google.com (mail-pl0-x244.google.com [IPv6:2607:f8b0:400e:c01::244]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 40KJfz16TkzDrZC for ; Mon, 9 Apr 2018 15:25:47 +1000 (AEST) Received: by mail-pl0-x244.google.com with SMTP id s10-v6so4482769plp.0 for ; Sun, 08 Apr 2018 22:25:47 -0700 (PDT) From: Nicholas Piggin To: linuxppc-dev@lists.ozlabs.org Cc: Nicholas Piggin Subject: [PATCH v2 5/9] powerpc/powernv: OPAL platform standardise OPAL_BUSY loops Date: Mon, 9 Apr 2018 15:24:27 +1000 Message-Id: <20180409052431.26405-6-npiggin@gmail.com> In-Reply-To: <20180409052431.26405-1-npiggin@gmail.com> References: <20180409052431.26405-1-npiggin@gmail.com> List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Convert to using the standard delay poll/delay form. The platform code: - Used delay when called from a schedule()able context. - Did not previously delay or sleep in the OPAL_BUSY_EVENT case. Signed-off-by: Nicholas Piggin --- arch/powerpc/platforms/powernv/opal.c | 8 +++++--- arch/powerpc/platforms/powernv/setup.c | 16 ++++++++++------ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c index 473c8ce14a34..0f03199a8664 100644 --- a/arch/powerpc/platforms/powernv/opal.c +++ b/arch/powerpc/platforms/powernv/opal.c @@ -907,10 +907,12 @@ void opal_shutdown(void) */ while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_sync_host_reboot(); - if (rc == OPAL_BUSY) + if (rc == OPAL_BUSY_EVENT) { + msleep(OPAL_BUSY_DELAY_MS); opal_poll_events(NULL); - else - mdelay(10); + } else if (rc == OPAL_BUSY) { + msleep(OPAL_BUSY_DELAY_MS); + } } /* Unregister memory dump region */ diff --git a/arch/powerpc/platforms/powernv/setup.c b/arch/powerpc/platforms/powernv/setup.c index ef8c9ce53a61..ddaea5ba9008 100644 --- a/arch/powerpc/platforms/powernv/setup.c +++ b/arch/powerpc/platforms/powernv/setup.c @@ -217,10 +217,12 @@ static void __noreturn pnv_restart(char *cmd) while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_cec_reboot(); - if (rc == OPAL_BUSY_EVENT) + if (rc == OPAL_BUSY_EVENT) { + msleep(OPAL_BUSY_DELAY_MS); opal_poll_events(NULL); - else - mdelay(10); + } else if (rc == OPAL_BUSY) { + msleep(OPAL_BUSY_DELAY_MS); + } } for (;;) opal_poll_events(NULL); @@ -234,10 +236,12 @@ static void __noreturn pnv_power_off(void) while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_cec_power_down(0); - if (rc == OPAL_BUSY_EVENT) + if (rc == OPAL_BUSY_EVENT) { + msleep(OPAL_BUSY_DELAY_MS); opal_poll_events(NULL); - else - mdelay(10); + } else if (rc == OPAL_BUSY) { + msleep(OPAL_BUSY_DELAY_MS); + } } for (;;) opal_poll_events(NULL); -- 2.17.0