From patchwork Wed Jan 5 19:39:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 12704647 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D11B8C433F5 for ; Wed, 5 Jan 2022 19:39:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243641AbiAETj0 (ORCPT ); Wed, 5 Jan 2022 14:39:26 -0500 Received: from mail-mw2nam08on2074.outbound.protection.outlook.com ([40.107.101.74]:21600 "EHLO NAM04-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S243639AbiAETjZ (ORCPT ); Wed, 5 Jan 2022 14:39:25 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m/0WwMCSVeqddtbulmupr/TD0Auy82BVF6L+Cf0hoaOrRQDjlvL3+GlrcURKfHyvUVmC3RvLP8/Zg3OFbsbelWVswYno6Nju/pImXGHJY6RRec1t1aDiIbz6Vb95dpehs6anSXX6VJZVE5HfMenA1xZbZULSFSxa+iq1uWPJ1fHOFe5Y8jVkDBFxeC3szUQ7c/oEJMGtNPdAl5yxX/5qUG/qSf4BmEqvdanZSPKT92Gg7AEnm+kRlz55w87abDJyTd1xNLDODjRjdRoOZouuwjXU5ZdCgzgrys/T109uGjVs4OyuHGQ50ihv3GWgd4FKcc309Vf8B7HSkjVxuS4UPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=V7S/pG97lAMZbYfoaJ+qQYTGd2DpLTCMRSSQghQkwuI=; b=nBKgXvUEi+zoUbfPg7UoF5J3xbWU/uQRuOACVTret95VCeGcWtAnKlfWsRd3PsvPB/+CkLJBGC26xt4HvJq4n/mfiNpucyTqIW+ZkNR4fujeT2DimdVhyPDxA5H50HeeN3bKI4v56DxvV1+6DxnZ0/tn6595atBlYqEYqM2ouaRUpeQthGD4nrJ/SYkJkXrADGuL3/k6Rt1cc1ne2LPksslS6JBtpBFGArRYfDAz+IhbKdDu0yR4UYcEcn7ve9R1wcrhb9yY2zYWZGFcakMwNqFL2aB7rHV9w8RYS41+KWhyxIcM9NzSDq4sHeOLUVvpWjIv+xlsGUrTCoRZjoDF3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=rjwysocki.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V7S/pG97lAMZbYfoaJ+qQYTGd2DpLTCMRSSQghQkwuI=; b=OQO7E86XjxXJchThjFRZEY9uD/kXB8IPaGDGIf77s8NZXRLfcHjbTPuo8kXh5cg7r/B5apKKnh/ymV1PD5g4ujNYcG9WgryM0iDBO1LMLrGplt+7OkvYbS8RGJd++LvaNKibuUPqypNKqDPYXi5l16zbyEbrehjWZOVhHEj14AM= Received: from BN6PR11CA0066.namprd11.prod.outlook.com (2603:10b6:404:f7::28) by MWHPR12MB1679.namprd12.prod.outlook.com (2603:10b6:301:f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Wed, 5 Jan 2022 19:39:23 +0000 Received: from BN8NAM11FT068.eop-nam11.prod.protection.outlook.com (2603:10b6:404:f7:cafe::1d) by BN6PR11CA0066.outlook.office365.com (2603:10b6:404:f7::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7 via Frontend Transport; Wed, 5 Jan 2022 19:39:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; Received: from SATLEXMB03.amd.com (165.204.84.17) by BN8NAM11FT068.mail.protection.outlook.com (10.13.177.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4867.7 via Frontend Transport; Wed, 5 Jan 2022 19:39:22 +0000 Received: from AUS-LX-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Wed, 5 Jan 2022 13:39:21 -0600 From: Mario Limonciello To: "Rafael J . Wysocki" , CC: , Basavaraj Natikar , Mario Limonciello Subject: [PATCH 1/3] PM: suspend: Move some structure declarations around Date: Wed, 5 Jan 2022 13:39:08 -0600 Message-ID: <20220105193910.25678-2-mario.limonciello@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220105193910.25678-1-mario.limonciello@amd.com> References: <20220105193910.25678-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB03.amd.com (10.181.40.144) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 68e7b90f-7a90-4e8b-8ff2-08d9d0831320 X-MS-TrafficTypeDiagnostic: MWHPR12MB1679:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zmn1OKJaYq3Zq/+W5UF/aWqVHmHmMEo+gVcSWlmF8Dx4sXnCVgwdFHLLM360TnPkJYCu9ZhgKnnqztydjwzSqskevgaFUSUY3+uSCphZ1qoXA/9Q+sTaC2YwVZypcdVVxRimZoDONVtaljgN/UHrr6n3ytL7ybsOWwrY8G/Gu2Z7iChrRLCkNEG2QA0yj0W+bUsn2+hoouxjqmF+Uq541/1OItm9Cuh49yCviliNsAHW0zfWmncloV8dpSGyGYsSMyB9qalIsTs/6sw3/c7+KYkv6gzSZUFLQrqGxtEQvAnlG77a5ZTqT5dVdqTUuqMBWn20cOA/VPtQy3krrnFhHywIC+Z8uvjkk2G1Nuw04ptG08RpR7nUhmPqDtyxmg33xINovq4YV8W4HX4vDNytwd2110UlOzl0HJf2CdNzt+2PZJnDv5lYIFhPbAjSfZypeG4v+ODGxFtnlvUZaPGQLMyJfyfJUW4ALd77E4NFKTaqpQNxppAUbEdCM1jd8Uc4KT0T+v4u3T4rZPx2ESdXM19Y/yoUnL5FDdgQzwEjo+Z1UmPVg7IRewPxxRvCkcKYkZh/1uMz6MlQpIlf3PuX/63hsG6s1pQTSYakNR7nnaLEQZizvl0IVNJNOhew542EbSUrutlmlGmm+/69sd0QfJ+PjW3sntGlC3LP8aK31AeYODuXyIIue/o465riXKhUx4WIUrjCZqVVCtgQiwK5lM8Fwn/Phl/BRKn6m8SvwNXHB8wE+kEUaBfWqcr5NhDga7zL71wJ8W6cy2AdJxTIebJXOfRYYBcAXM23LkwrtbU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(36840700001)(40470700002)(46966006)(2906002)(6666004)(70586007)(15650500001)(1076003)(70206006)(5660300002)(82310400004)(83380400001)(8676002)(40460700001)(508600001)(8936002)(4326008)(36860700001)(47076005)(2616005)(426003)(336012)(44832011)(186003)(16526019)(7696005)(26005)(110136005)(86362001)(54906003)(36756003)(81166007)(316002)(356005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 19:39:22.9361 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 68e7b90f-7a90-4e8b-8ff2-08d9d0831320 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT068.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1679 Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Future patches will modify members of these structures dependent upon these locations. Move the structure declarations first to make those patches easier to consume. Reviewed-by: Basavaraj Natikar Signed-off-by: Mario Limonciello --- drivers/acpi/x86/s2idle.c | 20 ++++++++++---------- kernel/power/suspend.c | 14 +++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index 1c48358b43ba..32ab4ba5adb9 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -361,6 +361,16 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d return ret; } +static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = { + .begin = acpi_s2idle_begin, + .prepare = acpi_s2idle_prepare, + .prepare_late = acpi_s2idle_prepare_late, + .wake = acpi_s2idle_wake, + .restore_early = acpi_s2idle_restore_early, + .restore = acpi_s2idle_restore, + .end = acpi_s2idle_end, +}; + static int lps0_device_attach(struct acpi_device *adev, const struct acpi_device_id *not_used) { @@ -508,16 +518,6 @@ void acpi_s2idle_restore_early(void) lps0_dsm_func_mask, lps0_dsm_guid); } -static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = { - .begin = acpi_s2idle_begin, - .prepare = acpi_s2idle_prepare, - .prepare_late = acpi_s2idle_prepare_late, - .wake = acpi_s2idle_wake, - .restore_early = acpi_s2idle_restore_early, - .restore = acpi_s2idle_restore, - .end = acpi_s2idle_end, -}; - void acpi_s2idle_setup(void) { acpi_scan_add_handler(&lps0_handler); diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 80cc1f0f502b..597c5e65aa45 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -73,13 +73,6 @@ bool pm_suspend_default_s2idle(void) } EXPORT_SYMBOL_GPL(pm_suspend_default_s2idle); -void s2idle_set_ops(const struct platform_s2idle_ops *ops) -{ - lock_system_sleep(); - s2idle_ops = ops; - unlock_system_sleep(); -} - static void s2idle_begin(void) { s2idle_state = S2IDLE_STATE_NONE; @@ -169,6 +162,13 @@ static bool valid_state(suspend_state_t state) suspend_ops->enter; } +void s2idle_set_ops(const struct platform_s2idle_ops *ops) +{ + lock_system_sleep(); + s2idle_ops = ops; + unlock_system_sleep(); +} + void __init pm_states_init(void) { /* "mem" and "freeze" are always present in /sys/power/state. */ From patchwork Wed Jan 5 19:39:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 12704648 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5C0FC433EF for ; Wed, 5 Jan 2022 19:39:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243596AbiAETja (ORCPT ); Wed, 5 Jan 2022 14:39:30 -0500 Received: from mail-mw2nam10on2066.outbound.protection.outlook.com ([40.107.94.66]:59232 "EHLO NAM10-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S243640AbiAETj0 (ORCPT ); Wed, 5 Jan 2022 14:39:26 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=elQLb+IbbXcfxzQ+93c0NOoL9vDTVdipi7SrwAjSXHqzF1/Q9BX23zyWUBtPrHt4l6QlGS/10cRlFIr2/1RLEAgYVeRk1sWKRfwSsTuDxsvozpBWhgagPMd5f698MvgkUwGLtjH1FO+XNY4pLs46+bCbTw+LN0J2mDHfeB95wkfFObynu0zaOUR4832WDzs7m2qlDKeiOT3oSVQojd2iomaXzN86BvWEHY4EBW44Yt1NmpfSefSsL+IL/mFWpYAHuHbVJ1mXnxoKHDbUBZcX4xM4/3WX6ToKoEovWlHNbRaA8s59GKiPkTqxv/vAJ6DYrgbb9nW1ihiA8jwVaNN2pw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dJUOJzhiBaiIdybdUOa7lNK/TvtNbP3Zw3njr6zslJ0=; b=ocD8xyocGe4/+QYnY36G+PN0oFRvJrS9aY8M30QJHSd5pL/wGI9gg+othfL4Qqw1MU5fVKUlEoUdNhbIIoDwfOD+44UGfY5UlfhR/kyxpkRXXD5MdMcUyRsfJ7uaUYels1SrGu8pybeSchZ0NzDP24xT3hji83CnZW/QSDGtcje5Xmrwcz67RUIQcaWfpYuCJHWGMJVJFaa1PrPXITw45q9WStCzfG9ObPDXEUi3vOi/UexVFDMIz+01b2GCxzlNI1ytpqC5SN67js2z7mxAlszMzgf1DYMteOlD3fY+bVS3sTisfcTBTY1Fe2tozoT5tev7aWZJgF2gLjuWuvDgwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=rjwysocki.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dJUOJzhiBaiIdybdUOa7lNK/TvtNbP3Zw3njr6zslJ0=; b=hr5Q0MKihOLKObVruMeN6MW671xxZQ5nO6NHSzRTeegFHQW7JRDMw3JqKO99WbVavV3gGqN0WjhXXUHXwaHl186NrGR1C1Cm8uYXl2UL8DG9gCwi6sSfvgntCXgJJsL9Ry6DAO2edjpdoYNnG4yVuyX5P9UgIbP+JhzZPQYfb5s= Received: from BN6PR11CA0058.namprd11.prod.outlook.com (2603:10b6:404:f7::20) by DM6PR12MB3931.namprd12.prod.outlook.com (2603:10b6:5:1cb::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Wed, 5 Jan 2022 19:39:23 +0000 Received: from BN8NAM11FT068.eop-nam11.prod.protection.outlook.com (2603:10b6:404:f7:cafe::19) by BN6PR11CA0058.outlook.office365.com (2603:10b6:404:f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15 via Frontend Transport; Wed, 5 Jan 2022 19:39:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; Received: from SATLEXMB03.amd.com (165.204.84.17) by BN8NAM11FT068.mail.protection.outlook.com (10.13.177.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4867.7 via Frontend Transport; Wed, 5 Jan 2022 19:39:23 +0000 Received: from AUS-LX-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Wed, 5 Jan 2022 13:39:22 -0600 From: Mario Limonciello To: "Rafael J . Wysocki" , CC: , Basavaraj Natikar , Mario Limonciello Subject: [PATCH 2/3] PM: sleep: Don't always assume s2idle will be enabled Date: Wed, 5 Jan 2022 13:39:09 -0600 Message-ID: <20220105193910.25678-3-mario.limonciello@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220105193910.25678-1-mario.limonciello@amd.com> References: <20220105193910.25678-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB03.amd.com (10.181.40.144) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 12a19a06-c870-4e90-4e9e-08d9d0831382 X-MS-TrafficTypeDiagnostic: DM6PR12MB3931:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TPrlQ9KmHxvnWIeSN8cBUOwiNWrYY2s5BPSgxG43ytyUYDETN364C4GF6hbOBEy0XSa+pDZ6Jx5CUximHE1WYVhZnRX3WZVtdMI97clQzVmKhcjtN9sGo06I9QCQZ+kpQ7J5Q+0xVSQJEP/pCJCuZr738IsTaZj60UAjpxLfThkIWIxHidZI4kgZ9+jPHfVdCDc5j/0YzVa4eWEx/GPxC+I8PYdcVEfYuN9Jmx1fPoI4UPLtFRszFpUw+PhFQTYSmUd3EgCWE16zEoV1PD9QccbXWKNS4i9FBEBjqo3uc/9a9sPPUPjaALSmLCkbBWf8TgVgmNfNwH2b/qp0ZoRHxWLszmgCaRFGhmzN0K7BcwwdELnzRHQr7OZK1dTy5g/D9RyYxvZi13hinDxWxQeEucvG96YnbBjCvBqjKsSMcvJC82k2Zcpm5wYlrB2ceTr9sbYgh4EPLGpcEGI1EgMaHwMlDpJ9ovlA/OM/3my8aSmAVpBgSxqtjiFCKaIELpQnVUPUMmFWgk4Z82uQWN9/juyeT1GHeAHgL9JmbjBL5Qlj1DzBLJV5l7hWtT6fY3jXiLtIGa7yBGaogrk5+9kgL5FQYy+dt+H/AAU7tfq3uqO56bSHAPh+cxi8IKS83FsYaqcFoRmbEshRhgKNo0taBe3ocv8HQOTGadsFxxn4LsCPK80LYgf+XA1BPnack0yfW7571PsueTQI13rheWvNss1JdIaD93nLo9vKfinf6z8ZwjVx4JE2FBqRNuBMPpi5lDPGiMDUiulFfIiUKgoSgSG6qVeEkutJXkxhfLIJD+Q= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(40470700002)(46966006)(36840700001)(110136005)(70586007)(7696005)(426003)(36860700001)(2906002)(508600001)(70206006)(8676002)(4326008)(16526019)(2616005)(83380400001)(186003)(316002)(44832011)(1076003)(47076005)(5660300002)(36756003)(82310400004)(8936002)(26005)(6666004)(86362001)(356005)(54906003)(336012)(81166007)(40460700001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 19:39:23.5767 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 12a19a06-c870-4e90-4e9e-08d9d0831382 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT068.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3931 Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Some platforms may require firmware support for s2idle to work properly, so allow other drivers that set s2idle ops to decide whether to offer it on a given platform. This should be no functional change for any platform. Reviewed-by: Basavaraj Natikar Signed-off-by: Mario Limonciello --- drivers/acpi/sleep.c | 6 ++++++ drivers/acpi/x86/s2idle.c | 6 ++++++ include/linux/suspend.h | 1 + kernel/power/suspend.c | 27 ++++++++++++++------------- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index eaa47753b758..9dafdaafa5dc 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -800,12 +800,18 @@ void acpi_s2idle_end(void) acpi_scan_lock_release(); } +static bool acpi_s2idle_valid(void) +{ + return true; +} + static const struct platform_s2idle_ops acpi_s2idle_ops = { .begin = acpi_s2idle_begin, .prepare = acpi_s2idle_prepare, .wake = acpi_s2idle_wake, .restore = acpi_s2idle_restore, .end = acpi_s2idle_end, + .valid = acpi_s2idle_valid, }; void __weak acpi_s2idle_setup(void) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index 32ab4ba5adb9..a1626737e5e0 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -361,6 +361,11 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d return ret; } +static bool acpi_s2idle_valid(void) +{ + return true; +} + static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = { .begin = acpi_s2idle_begin, .prepare = acpi_s2idle_prepare, @@ -369,6 +374,7 @@ static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = { .restore_early = acpi_s2idle_restore_early, .restore = acpi_s2idle_restore, .end = acpi_s2idle_end, + .valid = acpi_s2idle_valid, }; static int lps0_device_attach(struct acpi_device *adev, diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 8af13ba60c7e..51e5bdd9be23 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -195,6 +195,7 @@ struct platform_s2idle_ops { void (*restore_early)(void); void (*restore)(void); void (*end)(void); + bool (*valid)(void); }; #ifdef CONFIG_SUSPEND diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 597c5e65aa45..29d6f1738359 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -46,7 +46,7 @@ static const char * const mem_sleep_labels[] = { }; const char *mem_sleep_states[PM_SUSPEND_MAX]; -suspend_state_t mem_sleep_current = PM_SUSPEND_TO_IDLE; +suspend_state_t mem_sleep_current = PM_SUSPEND_MAX; suspend_state_t mem_sleep_default = PM_SUSPEND_MAX; suspend_state_t pm_suspend_target_state; EXPORT_SYMBOL_GPL(pm_suspend_target_state); @@ -152,6 +152,10 @@ EXPORT_SYMBOL_GPL(s2idle_wake); static bool valid_state(suspend_state_t state) { + /* PM_SUSPEND_TO_IDLE may require low-level support on some platforms */ + if (state == PM_SUSPEND_TO_IDLE) + return s2idle_ops && s2idle_ops->valid && s2idle_ops->valid(); + /* * The PM_SUSPEND_STANDBY and PM_SUSPEND_MEM states require low-level * support and need to be valid to the low-level implementation. @@ -166,6 +170,13 @@ void s2idle_set_ops(const struct platform_s2idle_ops *ops) { lock_system_sleep(); s2idle_ops = ops; + if (valid_state(PM_SUSPEND_TO_IDLE)) { + mem_sleep_states[PM_SUSPEND_TO_IDLE] = mem_sleep_labels[PM_SUSPEND_TO_IDLE]; + /* if supported, update to suspend to idle for default when ops set */ + if (mem_sleep_current == PM_SUSPEND_MAX || + mem_sleep_default == PM_SUSPEND_TO_IDLE) + mem_sleep_current = PM_SUSPEND_TO_IDLE; + } unlock_system_sleep(); } @@ -174,11 +185,6 @@ void __init pm_states_init(void) /* "mem" and "freeze" are always present in /sys/power/state. */ pm_states[PM_SUSPEND_MEM] = pm_labels[PM_SUSPEND_MEM]; pm_states[PM_SUSPEND_TO_IDLE] = pm_labels[PM_SUSPEND_TO_IDLE]; - /* - * Suspend-to-idle should be supported even without any suspend_ops, - * initialize mem_sleep_states[] accordingly here. - */ - mem_sleep_states[PM_SUSPEND_TO_IDLE] = mem_sleep_labels[PM_SUSPEND_TO_IDLE]; } static int __init mem_sleep_default_setup(char *str) @@ -236,11 +242,6 @@ int suspend_valid_only_mem(suspend_state_t state) } EXPORT_SYMBOL_GPL(suspend_valid_only_mem); -static bool sleep_state_supported(suspend_state_t state) -{ - return state == PM_SUSPEND_TO_IDLE || valid_state(state); -} - static int platform_suspend_prepare(suspend_state_t state) { return state != PM_SUSPEND_TO_IDLE && suspend_ops->prepare ? @@ -346,7 +347,7 @@ static int suspend_prepare(suspend_state_t state) { int error; - if (!sleep_state_supported(state)) + if (!valid_state(state)) return -EPERM; pm_prepare_console(); @@ -478,7 +479,7 @@ int suspend_devices_and_enter(suspend_state_t state) int error; bool wakeup = false; - if (!sleep_state_supported(state)) + if (!valid_state(state)) return -ENOSYS; pm_suspend_target_state = state; From patchwork Wed Jan 5 19:39:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 12704649 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C4DBC433FE for ; Wed, 5 Jan 2022 19:39:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243638AbiAETjd (ORCPT ); Wed, 5 Jan 2022 14:39:33 -0500 Received: from mail-bn7nam10on2068.outbound.protection.outlook.com ([40.107.92.68]:64480 "EHLO NAM10-BN7-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S243637AbiAETj0 (ORCPT ); Wed, 5 Jan 2022 14:39:26 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ENZ3xfRD1wKcUNP+qYDZXfHbO6Yz2djP4/gXLzhMFJWrVZDiEmruv4TgYCXZ0hbsyb6+wPifaXL7aUSzQCSfvKv6e0B8XWGB/r/25J8/BhAPGZ8P5VEzGID16hjJM0qAgYbq7MBU4OD9jdLILPfSdYvQENIO4lDhQvDv9Gn1lRoi4Jelh7chceUnB06CoJ82KQiAW+xdrItbVD/2iOA3HRsKgAs0bi7xuiT4b0KNQVkizM3Ux4Q4u6562EmNB9nfRUJwKwsW1HOfosZEus/g+aEbK9jLPBRDEIUQ0BBvkydUINYC7Fr6+uw8OutfSdcHrYUQOYeqq41eM0cI5ijsOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QUrtyua+9vr6MOy5LGEurzBGq4GVpy9OLs6KqgRe/fw=; b=balMOo9w6anAXvGSzhJwHAaIljX8ZP6zC2hYLAij+KWtEunu5zN6uF6tEIsCDwiZ4KGX44Qz1rSO1eBvhxd0DZ41dQbF/L/YRp5yn6TLW+SdWfktbwSSMerxibmsMbwHaogtqlLRkaak+gg5ntcsIf4wUrMZWFlDjo+Qzaz+WXxwyez9dN+XPY1UBLV2HC9MlUTy4SH6J10Qmxb7WJvs9b/oXdrqrivxj/3OGjj7hpJrircfwrsBP+7622nhAM/mTqJeBMt77Sf8lF7l3dKsF/xktFxNNgp6lrX1M9gukjfhxZxRlXAY4JGO9840UcDRrmxxDAxdUJTytlaxquBABw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=rjwysocki.net smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QUrtyua+9vr6MOy5LGEurzBGq4GVpy9OLs6KqgRe/fw=; b=bOOhyn6RC6cp996VAuEfwHODp3muh4IYXf6E9Os5nOuoHw7X8qAa6UtNmH5iXvLNj1lYh++o0ceOQSxzMDIcuRk+ZgVFlXoxAZe9NH6frFSRE3h1CywouOf3FtwHsP4jKA596bNesKhiTYmXNG2zZ887afwhZ+Y0cDORZKLshoc= Received: from BN6PR11CA0062.namprd11.prod.outlook.com (2603:10b6:404:f7::24) by DM5PR12MB1705.namprd12.prod.outlook.com (2603:10b6:3:10c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4844.15; Wed, 5 Jan 2022 19:39:24 +0000 Received: from BN8NAM11FT068.eop-nam11.prod.protection.outlook.com (2603:10b6:404:f7:cafe::13) by BN6PR11CA0062.outlook.office365.com (2603:10b6:404:f7::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7 via Frontend Transport; Wed, 5 Jan 2022 19:39:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; Received: from SATLEXMB03.amd.com (165.204.84.17) by BN8NAM11FT068.mail.protection.outlook.com (10.13.177.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.4867.7 via Frontend Transport; Wed, 5 Jan 2022 19:39:24 +0000 Received: from AUS-LX-MLIMONCI.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Wed, 5 Jan 2022 13:39:23 -0600 From: Mario Limonciello To: "Rafael J . Wysocki" , CC: , Basavaraj Natikar , Mario Limonciello , Bjoren Dasse Subject: [PATCH 3/3] acpi: sleep: Don't offer s2idle on AMD platforms without LPS0 Date: Wed, 5 Jan 2022 13:39:10 -0600 Message-ID: <20220105193910.25678-4-mario.limonciello@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220105193910.25678-1-mario.limonciello@amd.com> References: <20220105193910.25678-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB03.amd.com (10.181.40.144) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8a8f8a1a-4d67-4686-48b0-08d9d08313df X-MS-TrafficTypeDiagnostic: DM5PR12MB1705:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4125; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mVMSiKGscuNS45TFaNoOP+sDwgkMXuJ4SgF8RcS1xmkVoOKy/QnPDwHlT+0nnSxFs1mzfFIu+n8U+jgRNDDdhFDkvXmd33xUGchuQhMXQeeQrt/MmQClHvGBRRY2YOqKSUIWmS8NtMKxhQTAZOWnK9lGUijuVWGYdqU0dAx4wouJ1tFMLHBDu8ZEwAjqIS2U2yutb+cc1HCvGLSTaGodoFfXHcH0iehI1IjcRiNmBFTIPi2eqRP0ZXIcE1c12JeG9Us9DnbyIIdwlwCJFgxqrYoEQlzt5xk3bVIDQOHG79NDIoIHY65B/LNx2yWjkyAjHPzp22IPv2Ykz20W/zb0S/eWB02YHZoFOXKVdgycH2mkRF4jzPG7Oe/bWBxvTBjrvwPzf/JNUjGA4ZB4WlfVEhZxco0MegEie0tUcH9G6Fdi7oDzNROMnZP4Xn6zarlfktimGFcjfkC27jQ4fYA64FjPDCZTsbEBgNjjS9ch+8cvaQBmV3fy5HFxIFfJAyiLH1IgIULmIodBk+s14AuxtyqGt2dHcVekelz77FHZplggIxPQKm1NWWhw8mJ74HWVYaJGdbj0QBNVRVyMKLThpNPx822Q0KrEI2TR9s5fsNTRF2PipPkVXRL74xzEQruEYrcn0qaMjyuiSUz8Bu9XVcwx8o/qsKWJxBaxTYcrETMfrSHSYgzWLyb+GSgop3ob5hdYlq/XdG0ggGZ/aB6z532lGIKYr/tF5/47IOcWFENBSXlz1xKavJpP+6sMuQApnu/k2FB/l2y0sZoVJRPmjyQqZP3RMM+ymAqLxlY+EndB0wkL36pFOVLOcvf6gBo5E3KTVyQMlmENjl1uwvoR7TXJ61yCBhsRzt6j4NXSYnegawnAlf1ylgDCeU6bOj/w X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(4636009)(46966006)(36840700001)(40470700002)(8676002)(44832011)(83380400001)(47076005)(40460700001)(186003)(36860700001)(36756003)(70206006)(81166007)(7696005)(8936002)(26005)(356005)(2906002)(966005)(16526019)(86362001)(1076003)(508600001)(5660300002)(70586007)(336012)(316002)(110136005)(6666004)(82310400004)(2616005)(54906003)(4326008)(426003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2022 19:39:24.2016 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8a8f8a1a-4d67-4686-48b0-08d9d08313df X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT068.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1705 Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org On some OEM platforms a BIOS option is offered that will set the sleep mode between S3 and S2idle. This option will change certain HW behaviors. When in S2idle mode, Linux works properly. However when S3 mode is picked but the user chooses S2idle in Linux the platform may not be properly resumed. To avoid users getting into this situation, don't offer s2idle on AMD systems missing the LPS0 device either by a BIOS option or by using the acpi "no_sleep_lps0" module parameter. Reported-by: Bjoren Dasse BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1824 BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=215387 Reviewed-by: Basavaraj Natikar Signed-off-by: Mario Limonciello --- drivers/acpi/x86/s2idle.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index a1626737e5e0..c3d35a42ac2f 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -363,6 +363,13 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d static bool acpi_s2idle_valid(void) { + /* AMD systems must have low level firmware support */ + if (acpi_s2idle_vendor_amd()) +#if IS_ENABLED(CONFIG_AMD_PMC) + return lps0_device_handle && !sleep_no_lps0; +#else + return false; +#endif return true; } @@ -450,6 +457,9 @@ static int lps0_device_attach(struct acpi_device *adev, if (!acpi_s2idle_vendor_amd()) acpi_ec_mark_gpe_for_wake(); + /* reset these so we update valid */ + s2idle_set_ops(&acpi_s2idle_ops_lps0); + return 0; }