Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2009295pxj; Wed, 19 May 2021 20:36:18 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyZFfXHnMakEq5NV/u1BemeSBtjQJCPouizgd5zCzekNaaZjtzhB/S5vhvgVr5X7uzpabSb X-Received: by 2002:a17:907:2145:: with SMTP id rk5mr2478119ejb.228.1621481777995; Wed, 19 May 2021 20:36:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621481777; cv=none; d=google.com; s=arc-20160816; b=h2v+KrP3mp4ZItHpk7aVxNJVmdvdK3A35YbrNzR7wTrvjQKGCYDAP313sc07YDWB8k l6yPAEe2BTlSqLeNEto5uoE46RcJw2E/o5/yIzNWT4NOnocjOCzdyiGwS70vw0lxJON2 KUZfrT9tcckTb6NbQvRpwYqmTJNyNmPtDDW4I2HzjfyOG4XtbD3aPv5pwqtzGTtYrtTp TC25t7b22PSQpybt63GvxIhLoyKGqPKISyKzJBo5Gc6ZE25RI770auBSvbdFk1EHgrAD 8p/eWpxfuNe5UuWsL1mnYX6MfH/+eMfUM8AfUXPQFl0foKzhLP5GvzwQDVVizQDTSxou DYww== 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 :message-id:date:subject:to:from; bh=YkQ4ceXLTuoJdgsh3J+Fp8JdGg+suqM/P8mBDtwI5y4=; b=XMlFN1+b531IY4blin96ndFo92DHwhnehpjAgTGd9TE19WDF7IeObPDUQw/Lmu9cw9 M/P3ZcpoDbEapMrL0bra8E+xED9+ZqrB5f64n1P0ZLix0EJvDN5k098SFCV/xCcjIK8C pigoUh64wHRG0Q1FKo+6PM7QOWzOmy8jkLRhcbRCwn3VTFOFeTm2SFwtYUYsDSAOZ/W8 ikciigRBacj4uLKFZcuc6cm72KkqVEEXjJZDEwbL2T+yldgUoubYSll1oPIj4Ot8FabL 9bZUyxFmFlnDhq808DlLWHvGYcCti7bFT6cbfhnis37hknx/MRp0O84jGTHFy/+Ei4ue snVQ== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id au10si1536386ejc.163.2021.05.19.20.35.54; Wed, 19 May 2021 20:36:17 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=canonical.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229955AbhETDel (ORCPT + 99 others); Wed, 19 May 2021 23:34:41 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:50452 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229531AbhETDek (ORCPT ); Wed, 19 May 2021 23:34:40 -0400 Received: from mail-pl1-f197.google.com ([209.85.214.197]) by youngberry.canonical.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1ljZR1-0007ia-4l for linux-kernel@vger.kernel.org; Thu, 20 May 2021 03:33:19 +0000 Received: by mail-pl1-f197.google.com with SMTP id t13-20020a170902dccdb02900f0bc643e1fso7228137pll.2 for ; Wed, 19 May 2021 20:33:19 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=YkQ4ceXLTuoJdgsh3J+Fp8JdGg+suqM/P8mBDtwI5y4=; b=uVCZTYK4dwbEPBpjLbmFEGnll4HPVs+Io627lLqn8/NQMDvtx1+JtS2xsSThNDUr02 HeoNC19Kd+AvR7MYzOC7tRC0L6S2O57PWFjPCw+hIRrR1L/TmiYKXw7Xn5irkixY6Map NVGC2bZoI2iBKiXECSymE6lf1o1j4DtbwKcrJm4fPi1B+uyGLa5/b8/W69c1a1ZTKAa9 mVKxmRZ43SfTfI+DCCe2do1f4ovAklKQPM0iSyGP7xtMk0d3h7WtyvKvG5IMZX9arHDA kTDa9RXTybLhoElMcYrbysqAaphCKYZMMPkCM0GJMV7gteLoXA+SE5VjjlDfLcZXms0F 5OXA== X-Gm-Message-State: AOAM530TIJhXKX/E3/Zi3G7WkaxGQRXGwru1k1yTFcIu/FkThFcjdlha PVVU6toTIQZ7fJebjMT3FbANkSI0Jz7vWcTq1rH3anXRdow3XJRqce0UkD4tw+eGISKeidmiY0O auxbdTlNd+Fk7RaHb7onJxUP9nUGcm63gWLcLf9OHVA== X-Received: by 2002:a63:ba1b:: with SMTP id k27mr2391413pgf.381.1621481597723; Wed, 19 May 2021 20:33:17 -0700 (PDT) X-Received: by 2002:a63:ba1b:: with SMTP id k27mr2391389pgf.381.1621481597456; Wed, 19 May 2021 20:33:17 -0700 (PDT) Received: from canonical.com (61-220-137-34.HINET-IP.hinet.net. [61.220.137.34]) by smtp.gmail.com with ESMTPSA id 66sm687565pgj.9.2021.05.19.20.33.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 May 2021 20:33:17 -0700 (PDT) From: Koba Ko To: Keith Busch , Jens Axboe , Christoph Hellwig , Sagi Grimberg , linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Henrik Juul Hansen Subject: [PATCH] nvme-pci: Avoid to go into d3cold if device can't use npss. Date: Thu, 20 May 2021 11:33:15 +0800 Message-Id: <20210520033315.490584-1-koba.ko@canonical.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org During suspend, if the device can't use npss, driver would put controller to shutdown simply and let host to control power management. After resume, host can't change power state of the closed controller from D3cold to D0. For these devices, just avoid to go deeper than d3hot. Tested-by: Henrik Juul Hansen Signed-off-by: Koba Ko --- drivers/nvme/host/pci.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index a29b170701fc..caaf52051689 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "trace.h" #include "nvme.h" @@ -2958,6 +2959,15 @@ static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id) dev_info(dev->ctrl.device, "pci function %s\n", dev_name(&pdev->dev)); + if (pm_suspend_via_firmware() || !dev->ctrl.npss || + !pcie_aspm_enabled(pdev) || + dev->nr_host_mem_descs || + (dev->ctrl.quirks & NVME_QUIRK_SIMPLE_SUSPEND)) { + pdev->d3cold_allowed = false; + pci_d3cold_disable(pdev); + pm_runtime_resume(&pdev->dev); + } + nvme_reset_ctrl(&dev->ctrl); async_schedule(nvme_async_probe, dev); -- 2.25.1