From patchwork Mon Mar 24 04:53:13 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Hung X-Patchwork-Id: 332954 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) by ozlabs.org (Postfix) with ESMTP id AE10D2C00B8 for ; Mon, 24 Mar 2014 15:53:16 +1100 (EST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1WRwss-0007qJ-CH; Mon, 24 Mar 2014 04:53:14 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtp (Exim 4.76) (envelope-from ) id 1WRwsm-0007px-6t for fwts-devel@lists.ubuntu.com; Mon, 24 Mar 2014 04:53:08 +0000 Received: from [175.41.48.77] (helo=canonical.com) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1WRwsl-0007Vu-Ke; Mon, 24 Mar 2014 04:53:08 +0000 From: Alex Hung To: fwts-devel@lists.ubuntu.com Subject: [PATCH] s3: add a "s3-hybrid" option to enable hybrid sleep for s3 Date: Mon, 24 Mar 2014 12:53:13 +0800 Message-Id: <1395636793-26952-1-git-send-email-alex.hung@canonical.com> X-Mailer: git-send-email 1.8.1.2 X-BeenThere: fwts-devel@lists.ubuntu.com X-Mailman-Version: 2.1.14 Precedence: list List-Id: Firmware Test Suite Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: fwts-devel-bounces@lists.ubuntu.com Sender: fwts-devel-bounces@lists.ubuntu.com Signed-off-by: Alex Hung Acked-by: Colin Ian King Acked-by: Ivan Hu --- src/acpi/s3/s3.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/acpi/s3/s3.c b/src/acpi/s3/s3.c index 6e1b4e4..e5b6ef1 100644 --- a/src/acpi/s3/s3.c +++ b/src/acpi/s3/s3.c @@ -29,9 +29,10 @@ #include #include -#define PM_SUSPEND "pm-suspend" -#define FWTS_SUSPEND "FWTS_SUSPEND" -#define FWTS_RESUME "FWTS_RESUME" +#define PM_SUSPEND "pm-suspend" +#define PM_SUSPEND_HYBRID "pm-suspend-hybrid" +#define FWTS_SUSPEND "FWTS_SUSPEND" +#define FWTS_RESUME "FWTS_RESUME" static int s3_multiple = 1; /* number of s3 multiple tests to run */ static int s3_min_delay = 0; /* min time between resume and next suspend */ @@ -44,6 +45,7 @@ static int s3_device_check_delay = 15; /* Time to sleep after waking up and the static bool s3_min_max_delay = false; static float s3_suspend_time = 15.0; /* Maximum allowed suspend time */ static float s3_resume_time = 15.0; /* Maximum allowed resume time */ +static bool s3_hybrid = false; static int s3_init(fwts_framework *fw) { @@ -78,8 +80,13 @@ static int s3_do_suspend_resume(fwts_framework *fw, fwts_hwinfo_get(fw, &hwinfo1); /* Format up pm-suspend command with optional quirking arguments */ - if ((command = fwts_realloc_strcat(NULL, PM_SUSPEND)) == NULL) - return FWTS_OUT_OF_MEMORY; + if (s3_hybrid) { + if ((command = fwts_realloc_strcat(NULL, PM_SUSPEND_HYBRID)) == NULL) + return FWTS_OUT_OF_MEMORY; + } else { + if ((command = fwts_realloc_strcat(NULL, PM_SUSPEND)) == NULL) + return FWTS_OUT_OF_MEMORY; + } if (s3_quirks) { if ((command = fwts_realloc_strcat(command, " ")) == NULL) @@ -494,6 +501,9 @@ static int s3_options_handler(fwts_framework *fw, int argc, char * const argv[], case 9: s3_resume_time = atof(optarg); break; + case 10: + s3_hybrid = true; + break; } } return FWTS_OK; @@ -510,6 +520,7 @@ static fwts_option s3_options[] = { { "s3-device-check-delay", "", 1, "Sleep N seconds before we run a device check after waking up from suspend. Default is 15 seconds, e.g. --s3-device-check-delay=20" }, { "s3-suspend-time", "", 1, "Maximum expected suspend time in seconds, e.g. --s3-suspend-time=3.5" }, { "s3-resume-time", "", 1, "Maximum expected resume time in seconds, e.g. --s3-resume-time=5.1" }, + { "s3-hybrid", "", 0, "Run S3 with hybrid sleep, i.e. saving system states as S4 does." }, { NULL, NULL, 0, NULL } };