From patchwork Fri Aug 4 01:02:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 130959 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:44a:b0:3f2:4152:657d with SMTP id ez10csp24210vqb; Thu, 3 Aug 2023 21:40:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlFzUCC4VCJUZKgXSrD3VwznD3M97ut0HvxMcEhPx82UzhDivPBrwTQGFQkA5OU2D4O3k1/D X-Received: by 2002:a05:6a21:789c:b0:13a:3649:dc1a with SMTP id bf28-20020a056a21789c00b0013a3649dc1amr23608811pzc.0.1691124011359; Thu, 03 Aug 2023 21:40:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1691124011; cv=pass; d=google.com; s=arc-20160816; b=zH9VNaCdKphs4Cg/jhxqWWxBDzEld1+6FtypLqVW4qko8k/pwcCukKO/0F67zMN9UP WuVbNYt+S0tUh0P2bxRIk7r/Psa/4SSsxJm4UU53OHTUF+m2WPB4fg2NCaQyNr9HG2Wa RUT2EUV3OtlQTFiGoFNy7oDM1B18iW5ZU9IboGWu6/yB/zelaASUUhmzJQaAmI1qXYpT /nkkVzOr9r03MChu5A6VLI1EBtkbKXV7Hy8afRpfHkQNKkRWv2JTPND95vblB395nv48 uFvTDzOopBpbl6Wm6NB87r7LEDAmRtVxwhLig6FzCGor1+N8jrCwcLjCuNSua4J9cW01 W7VQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=v3vLZQAndQUrsGXw591fgzQ/18EKgSFlfr/n0oMklM0=; fh=Nh9k8iTb6A6iuv8X6fsJlNl/OveGK+B6OHYtkAnZZ00=; b=sQy7MMVxAYmrZHbUdSz9uUZqPHTiGc71FvGdHbJHBu0C5RBlRgY+RBOXRhpkaO5V5T KdS/6JOIxzFEYACmbjFAIpNMGsxEiRe2TuUM5+hgWn4ePiMOrt3sYwVkb/ukXR/G6BkQ aVQ8a6WvaUPCktJkNK/4HIue4yAAHzGR0XSY2x3U1e1Z4d67WOq+ZatoYA0LNcWwOUB7 wA2FIaRxwjJtIkGmsi4kZI1VH5QjXXNkbX1Tpmfkc6DxChNcrn5qbCg2bcS33pSrNWLM d0QCJHThkoCsGETyR2Pq57kArvAD/96nJUVtyn4VbYM2E7HrWGBTYXmxCgkjIWu+GtU0 qX8A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=mEktrbwM; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f10-20020a056a00228a00b006874c2f0a36si1131561pfe.156.2023.08.03.21.39.55; Thu, 03 Aug 2023 21:40:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=mEktrbwM; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232096AbjHDDn7 (ORCPT + 99 others); Thu, 3 Aug 2023 23:43:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232249AbjHDDni (ORCPT ); Thu, 3 Aug 2023 23:43:38 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on20611.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5b::611]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 51D913C2F; Thu, 3 Aug 2023 20:43:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BKT7YQECg/HlBF00idCbQWHPMXytuzY2YUn4B3babDEPwnl3bwQgtyHXpTyDJ5PADnPXaI/7A+YHtFIWJtwkXWuWvx1CN5Or6DdBKgOGfk5F26h7Q6Ony86Dc6ON4iN7gVBVSyhCsk82vXmAqL7OkqziKauALeo0ac1CYG/2ntPeG2APceylIeNCJER0NhqZw6t0dSeV60UW68Gau5yVP1H+9uHyaE7KNyiUlAUUBFCkOEWQYmyNa3ayRW6dy2D3nFBp05XrijE+I3Ob2dJe7IpNKRW4ssVRmTrFpK5U3H5X0j6p18m1kD3gdLYn/Jm/sKcQ09KpRKNHjTid8AuXcQ== 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=v3vLZQAndQUrsGXw591fgzQ/18EKgSFlfr/n0oMklM0=; b=a9m6SpWwo8e4nT1u57iEVQzUUeGelyxGFzVInkSdhoVe7/okIMl9OqvvluehDJZkrYejCVgF9+QlPwJczegKGnWAnEeEHFHlW8lb1lALn1DBaED70F3FF4VeqwW7Fw/ozTM9SdcFZBMe1maX2V2qSe0/iqGsGATpzHi91CcPl2BQN4aTBnKEBzp6hkuquKX3o48g9+E/PR8NllJeEfg8r8BJ9qJltr0Bok5un3ifT2xfBTMbK2gmGCiMeMTAQH0fm6H8s6LJQjsDv/OeV90TWd2FAjtxhLOeY7zfrviSbycfnMkeWnjOSHszSB0WKTnEXmgIhNCMX1m2Gk5aC+od/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org 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=v3vLZQAndQUrsGXw591fgzQ/18EKgSFlfr/n0oMklM0=; b=mEktrbwMKxA88vyFs+o9kRA3JevPzCvQILOxRBgFKfoYJ6H6DcU2TK/tYoPtJFRiycC/ZBqjXd1Rn12ZPcVzebG7p16eKuvNsBBxW4Y9Oo1T1e3ul9cXZ/oWI3/mlqxkiwG6o1VuSTwLOn76peB+/ezW27pgvWrD5IkxzhqkIc0= Received: from CY5PR19CA0048.namprd19.prod.outlook.com (2603:10b6:930:1a::21) by SN7PR12MB8103.namprd12.prod.outlook.com (2603:10b6:806:355::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.47; Fri, 4 Aug 2023 03:43:32 +0000 Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com (2603:10b6:930:1a:cafe::f7) by CY5PR19CA0048.outlook.office365.com (2603:10b6:930:1a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.19 via Frontend Transport; Fri, 4 Aug 2023 03:43:32 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6652.19 via Frontend Transport; Fri, 4 Aug 2023 03:43:32 +0000 Received: from SITE-L-T34-2.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 3 Aug 2023 22:42:41 -0500 From: Mario Limonciello To: "Rafael J . Wysocki" , Mika Westerberg , Bjorn Helgaas CC: , , "Andy Shevchenko" , , Kuppuswamy Sathyanarayanan , "Iain Lane" , Shyam-sundar S-k , Mario Limonciello Subject: [PATCH v9 1/3] ACPI: Add comments to clarify some #ifdef statements Date: Thu, 3 Aug 2023 20:02:27 -0500 Message-ID: <20230804010229.3664-2-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230804010229.3664-1-mario.limonciello@amd.com> References: <20230804010229.3664-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|SN7PR12MB8103:EE_ X-MS-Office365-Filtering-Correlation-Id: 50b09e89-10c1-40cb-d33c-08db949cf98f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: H5ED2gheN4t1S8ZX5E+LnldNh0vDH7eFeGL39ySayFB11MbI37N+JFa/hwP4LkO3gmqpZA3G/hrNN1ncCZUlQtkk8DEJF5qsaj5RiLhkB0o8sk6rB0hUfxpGA6phAWDQ5Qm25iX3mBcXju4jcQuRxQCpjS4fuFhXezkGLZUUTq7tknsbqPLNTE4zwE65jpgfsM8QgJO25AM48Wl8mVjiO6WfKS2E/6kIy0rAIO8wMzNjlcBJ4pXUyXsHtoM1sst17LP9SV+7GNSlShC5zRygsAEg8cWdclTwMTnpc1kg6Njrn6eTOyMR7LRJwyhuWKguZICqdxEelAxYpowslYmLahSw/HMxElfB3uu6uar/y00HKVCI1XSWbOCded2ZXF2em2Zt5oUju6aVYXS71I0ymuZ5bVWVYLo1vrcQJHa4BU/yUdM4MhTQMqOaz1TVLFX4ZuWxzBOMoLmq71pePj67Npn+fM6l/medmbdChkQWb4g2SJJuz3BghrHf/SJ19OQ09kHNn5+y8wzHvs9uv71Oq/xux7JtkS2TXjkBzXKH4sujO0EEqAGcR9wePOWtrfFkPBFqkA1cuRUPpE0yyQLCPLeSB/M4eiWlZWXkHPtQh50MuWkWwuBP9jHDWe8d6kKFB07663lX4KAGgxAwqlYXxJMnhrC1jihDzcniCKLR5cnqTfzDel4WsqHwf4HLwuMcp5Ex0lWA86rlUeY5FqJ/HF8lMrlL+vsQAekq1vu7ItonmkaL97UYvy4rRi7/cEhytIqvQTE4MvlBbogmYGA/+AEzpIOwU6tkCDjD5J7yIrMiXN1/JV/hYt/f4CgFxx0P X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(136003)(396003)(39860400002)(376002)(346002)(82310400008)(1800799003)(451199021)(186006)(46966006)(36840700001)(40470700004)(82740400003)(40460700003)(16526019)(2616005)(1076003)(8676002)(26005)(83380400001)(336012)(47076005)(2906002)(36860700001)(316002)(4326008)(4744005)(70586007)(5660300002)(426003)(70206006)(44832011)(8936002)(41300700001)(6666004)(7696005)(110136005)(478600001)(40480700001)(54906003)(356005)(81166007)(36756003)(86362001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 03:43:32.4724 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 50b09e89-10c1-40cb-d33c-08db949cf98f 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB8103 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_PASS,SPF_NONE,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773272051050993845 X-GMAIL-MSGID: 1773272051050993845 With nested #ifdef statements it's sometimes difficult to tell which code goes with which statement. One comment was wrong, so fix it and add another comment to clarify another. Signed-off-by: Mario Limonciello --- include/linux/acpi.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 641dc48439873..0d5277b7c6323 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1117,10 +1117,10 @@ static inline void arch_reserve_mem_area(acpi_physical_address addr, size_t size) { } -#endif /* CONFIG_X86 */ +#endif /* CONFIG_IA64 */ #else #define acpi_os_set_prepare_sleep(func, pm1a_ctrl, pm1b_ctrl) do { } while (0) -#endif +#endif /* CONFIG_ACPI */ #if defined(CONFIG_ACPI) && defined(CONFIG_PM) int acpi_dev_suspend(struct device *dev, bool wakeup); From patchwork Fri Aug 4 01:02:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 130956 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6358:419:b0:139:fa0d:b2d with SMTP id 25csp783683rwd; Thu, 3 Aug 2023 21:07:54 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHP9o2cl91g5rdF7aI1YgR7Zi5a52AVd938dAa01tFPluMbGmReqbcIWAvcbnSv1bSdhWmk X-Received: by 2002:a17:902:c947:b0:1bc:496c:8eda with SMTP id i7-20020a170902c94700b001bc496c8edamr2719505pla.4.1691122073935; Thu, 03 Aug 2023 21:07:53 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1691122073; cv=pass; d=google.com; s=arc-20160816; b=FuzLDjzie06ulR6gQVtg0l2tio7/pEQRxI+iua+IUJtJI7Be7Ktwxa7BKKSB3zXMwG MLpIwI5YjTxXjANO6Ky+GREG+HW8R/YpsJ1eJiR101FHazVgjveG4k3E63EUXijD5qM/ t1hPFfE+PpRfusn1ByAH1BJbE+qzjQTRmSnUC2r+SIRSeEHL1UVWC7Q43UJgqeXGSuLD 5rttiEK6gJyNmCk6+TaTgRIGdI60zJcdeuHcsEm8Rsjq4w9xBlcyO9OEWjgZFhr09wW8 /7+BKk/79iDpzstFtcq1k7p5nf6+VbmHGI3o3FcdTaPPaTTiZwnF+mc9ByduTBkfbrp9 7m4Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=LEbh1VHYTTX6Kr0IFfAIU3r8/4U/uhamErK/+Vr0BN0=; fh=Nh9k8iTb6A6iuv8X6fsJlNl/OveGK+B6OHYtkAnZZ00=; b=DCcG5uvV3KsBXj2EXXKgyoJrq5cqhT+b2s4w3Cj5w9OjGwBdbCj/d+7H0ehDPPAbUV sodTzAKHG+AfdVS+sYKXf9jJ3UA12EST2n4++CHK+6RLkMvC0f26/IkCPdjoqWzHykxX bIDeBtI1FmP6t0qK5lhjmCsHJc3TmNylREZ0psceDbVYesTYa8DSudYajBThP1CEeMY4 nse1KSN4kgfEKrJm91nPQLOf9VuJ0zrjol3CMsjb8zRXgu+5VlglywRH8UZJLPUeEOpa c0Un9UrfZmV3ECWckbFQmZvRrURrLZv3hOrSzqP3bE7GArKALNMXCS9Rwaz0Z6pxE4cX F1Ww== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=lzttx3nC; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l14-20020a170902f68e00b001b80c35bc65si1059657plg.641.2023.08.03.21.07.40; Thu, 03 Aug 2023 21:07:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=lzttx3nC; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232473AbjHDDoP (ORCPT + 99 others); Thu, 3 Aug 2023 23:44:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49232 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229841AbjHDDnl (ORCPT ); Thu, 3 Aug 2023 23:43:41 -0400 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2055.outbound.protection.outlook.com [40.107.92.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 547BC4204; Thu, 3 Aug 2023 20:43:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QqXOziP3uMvUKaLnfZ2QO43YqKeeLIjTLoAQCkHFEEqbtDttk1KRxT8xuR8azuowRHtBEY2DPl7R4U5GOdrUO0BMC1g7ys3Wn5KXhETAbcHl0Ac0UsV5RzlxGV5Aubkh0aN9LbaRo45O/XwZlPcNi/cGuTHR9LcDd+6EIqXYcgFpoEmnQPBjgHSIkfLIstxl73ajNcewoWnZ12mflBilA4t61KdNMYnQ/mWt0JrTtSUgkyOwVnfTQ789T7w0CmMpxGmXB6xY+oJg7TIcTX0WdSbaP27bj9Hs/RL05Z/BDf8ueTBfIOwkHqlGF0vGZpvsmRQNd0w3uxHci84OU5rYHQ== 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=LEbh1VHYTTX6Kr0IFfAIU3r8/4U/uhamErK/+Vr0BN0=; b=PurPe068b8+LhM/gRZgJG1en0Gey3elqEGS4j3Pz7rp2KBoOeOd6XoKu4EF4WF74P+LXMsK+67e/CjGIpdWWMdO7OcJWvFHU7Itzyfo1AeBOsQumsIurpWSpoXQQqHq/lohxkcikufDXnK2V/Qh9W8sUkFMrf33DCAdDdxCCvqfY0fbk6z2Q17hedQtQtVVqFZRcdtQtWcGIZXXIEJmw2j4JSRWPDufyobt46O7uL7f4sdkrvawySbWYItfUi44OiM9w4lL+rSbWX0YDvuIvrFf/ztC16FrNYP63fGSuciJ2nKNJWxdfYcjV0OZISTeHYhDhWiRnvQ3Y9WcR10EnTw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org 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=LEbh1VHYTTX6Kr0IFfAIU3r8/4U/uhamErK/+Vr0BN0=; b=lzttx3nCoMrzLAxb+TVfuxjl2a9Y7xNyMpT4YXaIIPhkqyKvaP1U64rGa/KxG/U/VVc7dksJfw7buf1EoI+UEwrhmj/ablepI7M/krIaIUnEofd1+acAwx2so0PimjKsRDky0gf5wmJh8Acn5nBblXYDCMP9K8hUDzVrEymZIE8= Received: from CY5PR19CA0034.namprd19.prod.outlook.com (2603:10b6:930:1a::13) by CH3PR12MB7644.namprd12.prod.outlook.com (2603:10b6:610:14f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.21; Fri, 4 Aug 2023 03:43:33 +0000 Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com (2603:10b6:930:1a:cafe::30) by CY5PR19CA0034.outlook.office365.com (2603:10b6:930:1a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20 via Frontend Transport; Fri, 4 Aug 2023 03:43:33 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6652.19 via Frontend Transport; Fri, 4 Aug 2023 03:43:33 +0000 Received: from SITE-L-T34-2.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 3 Aug 2023 22:43:31 -0500 From: Mario Limonciello To: "Rafael J . Wysocki" , Mika Westerberg , Bjorn Helgaas CC: , , "Andy Shevchenko" , , Kuppuswamy Sathyanarayanan , "Iain Lane" , Shyam-sundar S-k , Mario Limonciello Subject: [PATCH v9 2/3] ACPI: x86: s2idle: Adjust constraints logic building Date: Thu, 3 Aug 2023 20:02:28 -0500 Message-ID: <20230804010229.3664-3-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230804010229.3664-1-mario.limonciello@amd.com> References: <20230804010229.3664-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|CH3PR12MB7644:EE_ X-MS-Office365-Filtering-Correlation-Id: 8373be21-d49c-4401-a7f8-08db949cf9e5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wVFXs8H7PfjzUhJgqR9qN/Y1q6ZAiAYRIKyTr2HxliH1jlyPJGHtaZGYOfYcT+nBaBzKD3ibdAQapGfSd/PIyjFYeYLyKP7Quak2Tj3lNQUydGHinrQCLkPFCUdNKLNxH1eeUftywJc+kZB8q8xyrVb1f81YceQwe927t0LDUQqpzqLe0TSEXLUpSgu3ivXcvPaUGCrYTf3ALbji0H7noWTLYq4gUGNlDTSUiAFn7ZWMhQye9QZfPzD1sqFSkrDCTreaL0+jfngwkK+xVfdHe/oZPBOd5pFjG80eGj/xKCKieNUQUxeTHI66X/SRvzBUfW/4lchmYnWM0KsFNVZdL7t+D9x1GF7safsnXXRPzp6gyOyWnuFeKkMena94thsa9uws27vReSh5fzQaBUFiFgBYVvOsWJPJDlNoKl1E8d2JiYp2OhGZHLnJKAKZTd7EmgC4P/vZsdoHeR/ok7tCJAxAtPyq4Mea8wsQXRb69UunQ+RXOuf+tDxQ6qb7E0prvNuSZa9ro01Kcn2h5Tm7NLm/3Yt6C24bVQCCtalruntjQJYJXwxBdGjCdiiGtrEv0qYeYYumS6I75e7S1hv1jjZrO+PzPkyXarRYo+CSOfcC2tzSnc1c3RNEN8b/9/ktFQFRp+FPkiKymjf8kHLUJWsv7yusrrxg9J29VlMDqx1uYTEiUN4kSpyb/9X4bXFvE5fv48mjuWZ+7wI+ySD20u6aH0yfbDXO4N/KBsfZRBeql/svsi+xGOgIsq8uPEhXEkcl8hsgcGJkFKKYoqr9Yg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(136003)(346002)(396003)(376002)(39860400002)(82310400008)(451199021)(1800799003)(186006)(36840700001)(46966006)(40470700004)(83380400001)(2616005)(426003)(36860700001)(47076005)(40480700001)(316002)(70586007)(70206006)(41300700001)(1076003)(4326008)(44832011)(26005)(8676002)(8936002)(5660300002)(6666004)(7696005)(478600001)(54906003)(110136005)(86362001)(40460700003)(82740400003)(356005)(81166007)(336012)(2906002)(16526019)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 03:43:33.0349 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8373be21-d49c-4401-a7f8-08db949cf9e5 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7644 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773270019537953373 X-GMAIL-MSGID: 1773270019537953373 Constraints are currently only stored when enabled. To enable the ability to check if constraints are present they need to be stored even if disabled. Signed-off-by: Mario Limonciello --- v8->v9: * New patch --- drivers/acpi/x86/s2idle.c | 48 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index ce62e61a9605e..cb2ea92af3eb7 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -78,6 +78,7 @@ struct lpi_device_constraint { struct lpi_constraints { acpi_handle handle; int min_dstate; + bool enabled; }; /* AMD Constraint package structure */ @@ -120,8 +121,7 @@ static void lpi_device_get_constraints_amd(void) if (!lpi_constraints_table) goto free_acpi_buffer; - acpi_handle_debug(lps0_device_handle, - "LPI: constraints list begin:\n"); + acpi_handle_debug(lps0_device_handle, "LPI: constraints list begin:\n"); for (j = 0; j < package->package.count; ++j) { union acpi_object *info_obj = &package->package.elements[j]; @@ -129,12 +129,12 @@ static void lpi_device_get_constraints_amd(void) struct lpi_constraints *list; acpi_status status; + list = &lpi_constraints_table[j]; + list->min_dstate = -EINVAL; + for (k = 0; k < info_obj->package.count; ++k) { union acpi_object *obj = &info_obj->package.elements[k]; - list = &lpi_constraints_table[lpi_constraints_table_size]; - list->min_dstate = -1; - switch (k) { case 0: dev_info.enabled = obj->integer.value; @@ -149,27 +149,29 @@ static void lpi_device_get_constraints_amd(void) dev_info.min_dstate = obj->integer.value; break; } + } - if (!dev_info.enabled || !dev_info.name || - !dev_info.min_dstate) - continue; + if (!dev_info.name) + continue; - status = acpi_get_handle(NULL, dev_info.name, - &list->handle); - if (ACPI_FAILURE(status)) - continue; + status = acpi_get_handle(NULL, dev_info.name, &list->handle); + if (ACPI_FAILURE(status)) + continue; - acpi_handle_debug(lps0_device_handle, - "Name:%s\n", dev_info.name); + acpi_handle_debug(lps0_device_handle, + "Name:%s, Enabled: %d, States: %d, MinDstate: %d\n", + dev_info.name, + dev_info.enabled, + dev_info.function_states, + dev_info.min_dstate); - list->min_dstate = dev_info.min_dstate; + list->min_dstate = dev_info.min_dstate; - if (list->min_dstate < 0) { - acpi_handle_debug(lps0_device_handle, - "Incomplete constraint defined\n"); - continue; - } + if (list->min_dstate < 0) { + acpi_handle_debug(lps0_device_handle, "Incomplete constraint defined\n"); + continue; } + list->enabled = dev_info.enabled; lpi_constraints_table_size++; } } @@ -232,7 +234,7 @@ static void lpi_device_get_constraints(void) } } - if (!info.enabled || !info.package || !info.name) + if (!info.package || !info.name) continue; constraint = &lpi_constraints_table[lpi_constraints_table_size]; @@ -244,7 +246,7 @@ static void lpi_device_get_constraints(void) acpi_handle_debug(lps0_device_handle, "index:%d Name:%s\n", i, info.name); - constraint->min_dstate = -1; + constraint->min_dstate = -EINVAL; for (j = 0; j < package_count; ++j) { union acpi_object *info_obj = &info.package[j]; @@ -281,7 +283,7 @@ static void lpi_device_get_constraints(void) "Incomplete constraint defined\n"); continue; } - + constraint->enabled = info.enabled; lpi_constraints_table_size++; } From patchwork Fri Aug 4 01:02:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 130958 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:44a:b0:3f2:4152:657d with SMTP id ez10csp17353vqb; Thu, 3 Aug 2023 21:21:05 -0700 (PDT) X-Google-Smtp-Source: APBJJlH6rGRvTSJhWd0+Q6KxiKdlBdUi+D1fmI+Ir7arBrduAqhC6mbd/uLYfQ7DqgKgb0yeOwu0 X-Received: by 2002:a05:6a00:340b:b0:686:bf43:60fa with SMTP id cn11-20020a056a00340b00b00686bf4360famr18440884pfb.0.1691122865433; Thu, 03 Aug 2023 21:21:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1691122865; cv=pass; d=google.com; s=arc-20160816; b=xfHyMb+OyXPXCOpmP88rAdzWMF6UItit+MosLxM7jS8yjm/FfiPEuqztekY2V1N45c abJxqLRMl15XwO61ZPa21QSzA5ZrSouywciIjPo0WxKcxQO4/5R77vbzvgzzPGk5U9vE /IUuiHAkcPULGO4uf3U7+vjwamLMbXe5vJfzglThK4jzmx8X6ZaOqf7gwpRz3KL9S3Vz kLdf2zB1Ulr6lbxVqWaBddM3/Sc+83viNGIn43c8v9bd0fZ76DgrUTxRvk1qaUduvJpy wv/EJbMdoVUuBBPJYy25pNSOweI7/piZD70Vf2wgFdZPTTwzPiVJhtlA4hUbcJ82PK2B YHHg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=jWAuQpJfuKQnyXal3hynJoRUMAvfqfp7TTBdzgQZnqU=; fh=Nh9k8iTb6A6iuv8X6fsJlNl/OveGK+B6OHYtkAnZZ00=; b=WIudFE8Oqc0HW/3D9HMzxLiePUCYECvbSLsX2KLr4k8yc73QDWl+bQqHQaZCtBB/vm xSQB7AvzQAe+Tlw7CzbeXHY+rHZmTbxUZqc0GRUVIPp2tPqUFF2GAomaU7lwTx9RBOUj SS+frwKyn0cR9ZfrxrBHqarzPHCQpaksB2nd4LP/kw30rn/AAMyVYNlS9HAvbBLteqeb vnqHIOMJEC7yILrzxp6q3PvvH3bkrMo6hQOHA8LWYJBWvRffjQdkZdcO0H+Gbh4vpbtK h+XbL1PWWXaazWiclIU9XFfG4Jk/DCn4nVN816Btqwrtkk//V/ko9IEsCyXVKraZlKyl mf1w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=XSvjBF+R; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id be4-20020a056a001f0400b0068717b693fasi1038987pfb.336.2023.08.03.21.20.51; Thu, 03 Aug 2023 21:21:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=XSvjBF+R; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231455AbjHDDoG (ORCPT + 99 others); Thu, 3 Aug 2023 23:44:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232347AbjHDDnl (ORCPT ); Thu, 3 Aug 2023 23:43:41 -0400 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2056.outbound.protection.outlook.com [40.107.212.56]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 962794219; Thu, 3 Aug 2023 20:43:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hC+X5jB1iOk9Hp5Rlq4EUZSVxGn3yaZNCYfD/G3vaWQ1cBgRQVCT2ni71w75kFdd7mSc1pVXZzKVjESVYgTorP4EK4OY4Var17mIzLR1Uo8k2DoUt/9tEPLOnfFAtsqzWP8j7S22sN9gRULvxqQFkJRgSxc5/8lVmk6g6gkjL5sjysg8QhiftizY/JD/rNlJmuciMlDRzPEIuXoy1j/W4lxvMx1GhzdaeyYO5zSVNJsStixXRMezL75wC8SAPblgxgH9nkTX9lUYQs1X76ldBmUR4sCOZ/NFMQkSFRsMNgL+vjuEt3B6ier4GpuPSxAcruX1fyz7lRfzL9XtsGldxg== 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=jWAuQpJfuKQnyXal3hynJoRUMAvfqfp7TTBdzgQZnqU=; b=jdfH2XyJ9C5y/w2k+5pZf3JGvhPazBjCBo3dLN4n+FcJaGRGu4d6+rxYBIt40ILG2XDqg6w+Fc9nxBnv13QZynADlweWeD61/iKXtycx0HY8SrwJkX/XbGiLVcMSaxZ3QKEWz2mgh7kwVW2jru6ORXqJ4i/vjJzQiC8rXSJyIJUBORrG/ek4N2i21gAREcCxwvyHSBcDl9fnxzq4H0xFo0u7zyeRwyPq0UYi+9LNlSv/ytEGVrboNRI9bUsoBtb6HdDU1WffTP4L2zDmXmw8pH/nrJ7aJk+sj131kN3xQudHnqio+mbSMUUMuRDjzQQdu1s5PqNJPu4kfgO3u3ZDxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org 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=jWAuQpJfuKQnyXal3hynJoRUMAvfqfp7TTBdzgQZnqU=; b=XSvjBF+RG8H1Djv5ibdC5dA+Ad+UIXRW32IF5zkBoMvKSy7EfzjNDoJZ9rpwrHYlNztf7MO99veKub7mjoh5LD/kzE3CGhpIao5JpAtFXrSP4Yax1iFwyCOCxzfFb+Gk52CS/3QYK8VQR4BLPLSfmPFTStmxQmzKFqrUyMMo5AI= Received: from CY5PR19CA0046.namprd19.prod.outlook.com (2603:10b6:930:1a::20) by DS7PR12MB8202.namprd12.prod.outlook.com (2603:10b6:8:e1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.33; Fri, 4 Aug 2023 03:43:35 +0000 Received: from CY4PEPF0000E9D8.namprd05.prod.outlook.com (2603:10b6:930:1a:cafe::f4) by CY5PR19CA0046.outlook.office365.com (2603:10b6:930:1a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.20 via Frontend Transport; Fri, 4 Aug 2023 03:43:34 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by CY4PEPF0000E9D8.mail.protection.outlook.com (10.167.241.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6652.19 via Frontend Transport; Fri, 4 Aug 2023 03:43:34 +0000 Received: from SITE-L-T34-2.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 3 Aug 2023 22:43:32 -0500 From: Mario Limonciello To: "Rafael J . Wysocki" , Mika Westerberg , Bjorn Helgaas CC: , , "Andy Shevchenko" , , Kuppuswamy Sathyanarayanan , "Iain Lane" , Shyam-sundar S-k , Mario Limonciello Subject: [PATCH v9 3/3] PCI/ACPI: Use device constraints to decide PCI target state fallback policy Date: Thu, 3 Aug 2023 20:02:29 -0500 Message-ID: <20230804010229.3664-4-mario.limonciello@amd.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230804010229.3664-1-mario.limonciello@amd.com> References: <20230804010229.3664-1-mario.limonciello@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D8:EE_|DS7PR12MB8202:EE_ X-MS-Office365-Filtering-Correlation-Id: 121b03fc-b9a6-47de-b002-08db949cfaf0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KRM09h+GocxDDwkEkGlb4zILNYidUQlpd2hsVJVugnuMm7lEWei7hOfe85PKfrN0S5Wjeq+LF8/+BOxciScbIdye5lIt/2QUw8fL80IKHWGVHyyydEkfzOn3Uo8D+jIVMoZ4E9sFpHjdW8Pg2LC/uGje0qKWcroYCezeO24iPy3xTnqcFAiWmf1fPtFzL7yDyeZmzc27rtOCMwvODy+Jwy5KOTSpG8esNWCeKbSWmG8IjKe3aYqp/TZSy73vZU5UThahUb1RunMzd+CIkOLgXfUdsm/Ra2glQZzYMzVKUtE3o2ssMUbZGKgXJ7wYMqhErNDfXL2pzKq8uybiJI+P+4LmAB5/sQMdK1tsCN5wnDCBFA1Rz3JnqHZwgznwpta9P0H/go+CzcRDQrjyjcbHiPOFarYekc1wbqMJuzmTgUBJlSEb72Nv2xUWtOgM74rry11icpVbQaMgcH4HOyk8WW1sUKsnEo1Y0Y9t5pWIs3wEtz6F+QdaOiYSXYwxiQFF3Bt+4SKl1Uwk/uJaC16Eli6bLWcNhpkFh0RIHZo5a3JVPYdj8sNnnd5fS9nPdO7ejuKaTjHBCP+7WNcbq8uTyQ9zxz3QVBSbIvZXnV5bJ8LxqMg/0EHVg/WUuK+ZLER8Vgp5x5X5UC6g3MNZKRu+cYa8BZMOY7+ggbYYmG3b3jm80nAQSFxGeQ8rlt3pi10/GE/DyEbo+ObRHXUUul31oRmTp0J4UFGUeGr3TvTpqdi++/L9t1/mJOgt6Cak3pdTo2jFGbiZWkLj7nwwepvneG4KGtVXFslh8Hne8KCp2Fs= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(39860400002)(136003)(396003)(346002)(376002)(82310400008)(1800799003)(451199021)(186006)(46966006)(36840700001)(40470700004)(47076005)(1076003)(7696005)(966005)(6666004)(54906003)(478600001)(110136005)(41300700001)(2616005)(81166007)(336012)(44832011)(16526019)(70586007)(5660300002)(356005)(2906002)(4326008)(8676002)(316002)(82740400003)(8936002)(70206006)(86362001)(36756003)(36860700001)(83380400001)(40460700003)(40480700001)(426003)(26005)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2023 03:43:34.7850 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 121b03fc-b9a6-47de-b002-08db949cfaf0 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D8.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB8202 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1773270849902742676 X-GMAIL-MSGID: 1773270849902742676 Since commit 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend") PCIe ports from modern machines (>=2015) are allowed to be put into D3 by storing a value to the `bridge_d3` variable in the `struct pci_dev` structure. pci_power_manageable() uses this variable to indicate a PCIe port can enter D3. pci_pm_suspend_noirq() uses the return from pci_power_manageable() to decide whether to try to put a device into its target state for a sleep cycle via pci_prepare_to_sleep(). For devices that support D3, the target state is selected by this policy: 1. If platform_pci_power_manageable(): Use platform_pci_choose_state() 2. If the device is armed for wakeup: Select the deepest D-state that supports a PME. 3. Else: Use D3hot. Devices are considered power manageable by the platform when they have one or more objects described in the table in section 7.3 of the ACPI 6.5 specification. When devices are not considered power manageable; specs are ambiguous as to what should happen. In this situation Windows 11 leaves PCIe ports in D0 while Linux puts them into D3 due to the above mentioned commit. In Windows systems that support Modern Standby specify hardware pre-conditions for the SoC to achieve the lowest power state by device constraints in a SOC specific "Power Engine Plugin" (PEP) [2] [3]. They can be marked as disabled or enabled and when enabled can specify the minimum power state required for an ACPI device. When it is ambiguous what should happen, adjust the logic for pci_target_state() to check whether a device constraint is present and enabled. * If power manageable by ACPI use this to get to select target state * If a device constraint is present but disabled then choose D0 * If a device constraint is present and enabled then use it * If a device constraint is not present, then continue to existing logic (if marked for wakeup use deepest state that PME works) * If not marked for wakeup choose D3hot Link: https://uefi.org/specs/ACPI/6.5/07_Power_and_Performance_Mgmt.html#device-power-management-objects [1] Link: https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/platform-design-for-modern-standby#low-power-core-silicon-cpu-soc-dram [2] Link: https://uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf [3] Fixes: 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend") Reported-by: Iain Lane Closes: https://forums.lenovo.com/t5/Ubuntu/Z13-can-t-resume-from-suspend-with-external-USB-keyboard/m-p/5217121 Signed-off-by: Mario Limonciello --- v8->v9: * Use device_match_acpi_handle instead * Move the logic to run at the state selection time * Small fixups suggested by Andy * Call from pci_target_state() instead v7->v8: * Use device constraints instead * Update commit message and links --- drivers/acpi/x86/s2idle.c | 23 +++++++++++++++++++++++ drivers/pci/pci-acpi.c | 22 ++++++++++++++++++++++ drivers/pci/pci.c | 14 ++++++++++++++ drivers/pci/pci.h | 5 +++++ include/linux/acpi.h | 10 ++++++++-- 5 files changed, 72 insertions(+), 2 deletions(-) diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c index cb2ea92af3eb7..c0e2c82e9ef63 100644 --- a/drivers/acpi/x86/s2idle.c +++ b/drivers/acpi/x86/s2idle.c @@ -293,6 +293,29 @@ static void lpi_device_get_constraints(void) ACPI_FREE(out_obj); } +/** + * acpi_get_lps0_constraint - get any LPS0 constraint for a device + * @dev: device to get constraint for + * + * If a constraint has been specified in the _DSM method for the device, + * and the constraint is enabled return it. If the constraint is disabled, + * return 0. Otherwise, return -ENODEV. + */ +int acpi_get_lps0_constraint(struct device *dev) +{ + int i; + + for (i = 0; i < lpi_constraints_table_size; ++i) { + if (!device_match_acpi_handle(dev, lpi_constraints_table[i].handle)) + continue; + if (!lpi_constraints_table[i].enabled) + return 0; + return lpi_constraints_table[i].min_dstate; + } + + return -ENODEV; +} + static void lpi_check_constraints(void) { int i; diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index a05350a4e49cb..499dcb7fa3651 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c @@ -1043,6 +1043,28 @@ bool acpi_pci_bridge_d3(struct pci_dev *dev) return false; } +/** + * acpi_pci_device_constraint - determine if the platform has a contraint for the device + * @dev: PCI device to check + * @result (out): the constraint specified by the platform + * + * If the platform has specified a constraint for a device, this function will + * return 0 and set @result to the constraint. + * Otherwise, it will return an error code. + */ +int acpi_pci_device_constraint(struct pci_dev *dev, int *result) +{ + int constraint; + + constraint = acpi_get_lps0_constraint(&dev->dev); + pci_dbg(dev, "ACPI device constraint: %d\n", constraint); + if (constraint < 0) + return constraint; + *result = constraint; + + return 0; +} + static void acpi_pci_config_space_access(struct pci_dev *dev, bool enable) { int val = enable ? ACPI_REG_CONNECT : ACPI_REG_DISCONNECT; diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 60230da957e0c..6c70f921467c6 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1082,6 +1082,14 @@ static inline bool platform_pci_bridge_d3(struct pci_dev *dev) return acpi_pci_bridge_d3(dev); } +static inline int platform_get_constraint(struct pci_dev *dev, int *result) +{ + if (pci_use_mid_pm()) + return -ENODEV; + + return acpi_pci_device_constraint(dev, result); +} + /** * pci_update_current_state - Read power state of given device and cache it * @dev: PCI device to handle. @@ -2671,6 +2679,8 @@ EXPORT_SYMBOL(pci_wake_from_d3); */ static pci_power_t pci_target_state(struct pci_dev *dev, bool wakeup) { + int val; + if (platform_pci_power_manageable(dev)) { /* * Call the platform to find the target state for the device. @@ -2691,6 +2701,10 @@ static pci_power_t pci_target_state(struct pci_dev *dev, bool wakeup) return state; } + /* if platform indicates in a device constraint, use it */ + if (!platform_get_constraint(dev, &val)) + return val; + /* * If the device is in D3cold even though it's not power-manageable by * the platform, it may have been powered down by non-standard means. diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index a4c3974340576..8001f34ec535b 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -707,6 +707,7 @@ void pci_set_acpi_fwnode(struct pci_dev *dev); int pci_dev_acpi_reset(struct pci_dev *dev, bool probe); bool acpi_pci_power_manageable(struct pci_dev *dev); bool acpi_pci_bridge_d3(struct pci_dev *dev); +int acpi_pci_device_constraint(struct pci_dev *dev, int *result); int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state); pci_power_t acpi_pci_get_power_state(struct pci_dev *dev); void acpi_pci_refresh_power_state(struct pci_dev *dev); @@ -731,6 +732,10 @@ static inline bool acpi_pci_bridge_d3(struct pci_dev *dev) { return false; } +static inline int acpi_pci_device_constraint(struct pci_dev *dev, int *result) +{ + return -ENODEV; +} static inline int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state) { return -ENODEV; diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 0d5277b7c6323..024075cce09e5 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -1100,7 +1100,7 @@ void acpi_os_set_prepare_extended_sleep(int (*func)(u8 sleep_state, acpi_status acpi_os_prepare_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b); -#ifdef CONFIG_X86 +#if defined(CONFIG_ACPI_SLEEP) && defined(CONFIG_X86) struct acpi_s2idle_dev_ops { struct list_head list_node; void (*prepare)(void); @@ -1109,7 +1109,13 @@ struct acpi_s2idle_dev_ops { }; int acpi_register_lps0_dev(struct acpi_s2idle_dev_ops *arg); void acpi_unregister_lps0_dev(struct acpi_s2idle_dev_ops *arg); -#endif /* CONFIG_X86 */ +int acpi_get_lps0_constraint(struct device *dev); +#else +static inline int acpi_get_lps0_constraint(struct device *dev) +{ + return false; +} +#endif /* CONFIG_ACPI_SLEEP && CONFIG_X86 */ #ifndef CONFIG_IA64 void arch_reserve_mem_area(acpi_physical_address addr, size_t size); #else