Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2342607ybz; Thu, 23 Apr 2020 16:22:58 -0700 (PDT) X-Google-Smtp-Source: APiQypL1Ru5MEnez0ci2iu0fPDa+kMw3O+4Drt9c9qrL8mOsIhVkbydzdXBbixTwli6WawVGOvPj X-Received: by 2002:a17:906:f106:: with SMTP id gv6mr4903887ejb.271.1587684178084; Thu, 23 Apr 2020 16:22:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587684178; cv=none; d=google.com; s=arc-20160816; b=tLHKbLlQrctzZdESCI+0AvM8KLLxODYK0CE+Xlpnqr2bpCCosJWzZ6ktlSnm7GKN9q lqoFM9DsmNszU6Eh7c3Gn4pD3GApTOtmdMdidshb5YvATculVXmkgtQ7kd9MQEqTwej/ TclOv8MByXh1kVynrvfvadz0U6wx75N95+6rGd/ZDOvhb3bo7TQdPlh5RDSAHrHWIe09 6X0SCwR6Si5oIF08RHIeeRWf7h6mV+RTj8ezg6wzWKSpS1QSqPSuDMI9cpMfbQ6s//dJ Szo/kB47yrfIMbBKNlkwcileguLHRVWnkpQIdsWwF7F3802ay2JKbN4suaHU2K4gsEDU KfLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=cmP2qnDLFpTxsm2oLYNtVPoEdhFcDuL6MG2d/Wfsl4Q=; b=p2f9TjSShED4e5AI0yCggK4xvn0c3PvPUtCPnvOtm0dgs4Ah1EdAwJdfCW6wOkk6U/ 8x4y3GmJxM+1JqQluMkZJjH8EAa2X1Ex+6z3p42BVWAs99wvnJ2keZQAbxWIP1XTmK+w fsKd4wu0Rg6cdOvoy1ODA3+iyyO0NyGRlVs5oJuEIaHfar3FSE/BemBPB4peS+VXQ7pX d6yTZmNakPZEzAIR9x/iGEPBSp6mwxzVwjm6AMsNJ6kLgs9e3Nm4JEnB9e0HkOZ/WTBN Gw4EmhMbAZwUkhhIRfvrIt32zNhRCQHkjvAEvyw/TSuJUKuBQOcXlyfiOwffI3w4hrfQ Wt4Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s7si2056832edh.266.2020.04.23.16.22.35; Thu, 23 Apr 2020 16:22:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729136AbgDWXTR (ORCPT + 99 others); Thu, 23 Apr 2020 19:19:17 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:48802 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728244AbgDWXGg (ORCPT ); Thu, 23 Apr 2020 19:06:36 -0400 Received: from [192.168.4.242] (helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jRkvO-0004e7-Fq; Fri, 24 Apr 2020 00:06:30 +0100 Received: from ben by deadeye with local (Exim 4.93) (envelope-from ) id 1jRkvM-00E6lL-28; Fri, 24 Apr 2020 00:06:28 +0100 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, Denis Kirjanov , "Todd Brandt" , "Zhang Rui" , "Rafael J. Wysocki" Date: Fri, 24 Apr 2020 00:05:06 +0100 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 079/245] ACPI: PM: Avoid attaching ACPI PM domain to certain devices In-Reply-To: X-SA-Exim-Connect-IP: 192.168.4.242 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.83-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: "Rafael J. Wysocki" commit b9ea0bae260f6aae546db224daa6ac1bd9d94b91 upstream. Certain ACPI-enumerated devices represented as platform devices in Linux, like fans, require special low-level power management handling implemented by their drivers that is not in agreement with the ACPI PM domain behavior. That leads to problems with managing ACPI fans during system-wide suspend and resume. For this reason, make acpi_dev_pm_attach() skip the affected devices by adding a list of device IDs to avoid to it and putting the IDs of the affected devices into that list. Fixes: e5cc8ef31267 (ACPI / PM: Provide ACPI PM callback routines for subsystems) Reported-by: Zhang Rui Tested-by: Todd Brandt Signed-off-by: Rafael J. Wysocki [bwh: Backported to 3.16: adjust context] Signed-off-by: Ben Hutchings --- drivers/acpi/device_pm.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) --- a/drivers/acpi/device_pm.c +++ b/drivers/acpi/device_pm.c @@ -1041,9 +1041,19 @@ static struct dev_pm_domain acpi_general */ int acpi_dev_pm_attach(struct device *dev, bool power_on) { + /* + * Skip devices whose ACPI companions match the device IDs below, + * because they require special power management handling incompatible + * with the generic ACPI PM domain. + */ + static const struct acpi_device_id special_pm_ids[] = { + {"PNP0C0B", }, /* Generic ACPI fan */ + {"INT3404", }, /* Fan */ + {} + }; struct acpi_device *adev = ACPI_COMPANION(dev); - if (!adev) + if (!adev || !acpi_match_device_ids(adev, special_pm_ids)) return -ENODEV; if (dev->pm_domain)