Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2827002pxv; Mon, 12 Jul 2021 02:55:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRssIZvsMGizKNLzFSeNmJz9qHaSwAWO3di2g1L1C5FVhTHZ2/m6y+lnY1H7F+8QRW7bW7 X-Received: by 2002:a6b:dc08:: with SMTP id s8mr28651530ioc.7.1626083740772; Mon, 12 Jul 2021 02:55:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626083740; cv=none; d=google.com; s=arc-20160816; b=DtDDGCGyAmwbL/azH/G8bNCgk27G8t7pmH2loPkBgPNaF4wEvBuiT7nPbaB7E7f1lU d8mNzjlca4yNDcBe/wcyNRxo6NXYavcvSrO34wCKLES/+TZlyeSyQKcLE80whNGrkjD6 sLyltWA8oAEqsg1Igs7zZnqTDZBC/zj09LefBCljZ5HbUAHXbBaybsr6IwCGI2vnW1a/ rwfdBV0dg5i8ZqmgKV3Du9wZDGOHJfW54pvVYa/CpXRCxZiLYIK6HXBG8jyRBjnkTADK zFMOzkNmoHu8RktFnaBplMerzc+ibpRYGbaiAvfYrpqQpXYTHNS956+m46ABHi/iKN+O HtIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=U/7EtWOexVoR97Az+AW9xcDUzzK80QOEvwSw552aETQ=; b=g5ID071Dur68ZjUf+9LZ++SRnLPyMzAgtxsOWr6uOxyR/SBGl7Nrstp+dmH8yvMK7F OBJq/ndbe17SsTbGVsEywDNrKBH/ppSubGHNch/kGp8Fuq0gMabAdOjSgmj6cl6onRUP CWtB+703iKnsvnDd9Tg16f8C9Rs0eYSkrRQH4DXZr+g8xcYIM+Su1oVY8aIqABpvW1CB iIdMQ9Tjj/sg+NFj792Ruu983/1B7QVTh6PA7+iYwsWims5W/tbNtqDAE9Kv3cNsQ8Lm G7IrWK9ow+WAnUZqJK1+WjT2nAw2j8Z1nuG2fWPvl5X8zYVRqBS4QPFWVB8ro4jFjXj+ wWlQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=1KqmYyFE; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t10si16085172ilp.101.2021.07.12.02.55.29; Mon, 12 Jul 2021 02:55:40 -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; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=1KqmYyFE; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239841AbhGLG5y (ORCPT + 99 others); Mon, 12 Jul 2021 02:57:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:34398 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236528AbhGLGlj (ORCPT ); Mon, 12 Jul 2021 02:41:39 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9E5B7610CC; Mon, 12 Jul 2021 06:38:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626071923; bh=tcN9aAMyxCGHM4MuuNtR/bn5XH8OBCNTN3J8vybDAoQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1KqmYyFE2pKalTyltcKk0LSeNEL7ry84VkvlFXO25PEIirKyhOwbyDrPyVnFbe1pV OCIj9xPuRPk4ojNM1hbARF+VlZPXq5PeI55cBQ/sYjO45YB5Q8IuZyBJMSktQVVyas ViamZeyvFoy/0jLok9qH9xQbRiseXwaLB86wIWsA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Liang Prike , Raul E Rangel , Mario Limonciello , "David E. Box" , Christoph Hellwig , Sasha Levin Subject: [PATCH 5.10 277/593] nvme-pci: look for StorageD3Enable on companion ACPI device instead Date: Mon, 12 Jul 2021 08:07:17 +0200 Message-Id: <20210712060914.434553144@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mario Limonciello [ Upstream commit e21e0243e7b0f1c2a21d21f4d115f7b37175772a ] The documentation around the StorageD3Enable property hints that it should be made on the PCI device. This is where newer AMD systems set the property and it's required for S0i3 support. So rather than look for nodes of the root port only present on Intel systems, switch to the companion ACPI device for all systems. David Box from Intel indicated this should work on Intel as well. Link: https://lore.kernel.org/linux-nvme/YK6gmAWqaRmvpJXb@google.com/T/#m900552229fa455867ee29c33b854845fce80ba70 Link: https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/power-management-for-storage-hardware-devices-intro Fixes: df4f9bc4fb9c ("nvme-pci: add support for ACPI StorageD3Enable property") Suggested-by: Liang Prike Acked-by: Raul E Rangel Signed-off-by: Mario Limonciello Reviewed-by: David E. Box Signed-off-by: Christoph Hellwig Signed-off-by: Sasha Levin --- drivers/nvme/host/pci.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 56263214ea06..3f05df98697d 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -2836,10 +2836,7 @@ static unsigned long check_vendor_combination_bug(struct pci_dev *pdev) #ifdef CONFIG_ACPI static bool nvme_acpi_storage_d3(struct pci_dev *dev) { - struct acpi_device *adev; - struct pci_dev *root; - acpi_handle handle; - acpi_status status; + struct acpi_device *adev = ACPI_COMPANION(&dev->dev); u8 val; /* @@ -2847,28 +2844,9 @@ static bool nvme_acpi_storage_d3(struct pci_dev *dev) * must use D3 to support deep platform power savings during * suspend-to-idle. */ - root = pcie_find_root_port(dev); - if (!root) - return false; - adev = ACPI_COMPANION(&root->dev); if (!adev) return false; - - /* - * The property is defined in the PXSX device for South complex ports - * and in the PEGP device for North complex ports. - */ - status = acpi_get_handle(adev->handle, "PXSX", &handle); - if (ACPI_FAILURE(status)) { - status = acpi_get_handle(adev->handle, "PEGP", &handle); - if (ACPI_FAILURE(status)) - return false; - } - - if (acpi_bus_get_device(handle, &adev)) - return false; - if (fwnode_property_read_u8(acpi_fwnode_handle(adev), "StorageD3Enable", &val)) return false; -- 2.30.2