Received: by 10.223.185.111 with SMTP id b44csp653587wrg; Fri, 9 Mar 2018 11:04:14 -0800 (PST) X-Google-Smtp-Source: AG47ELv99Mb3YXHeM3w/f/EYaC5k47NEJIrC65LqJ0TVLLZdLG3BJ/hjGbGuBDQIpMXzoM1/yq0k X-Received: by 10.98.252.22 with SMTP id e22mr31160370pfh.235.1520622254679; Fri, 09 Mar 2018 11:04:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520622254; cv=none; d=google.com; s=arc-20160816; b=Mgy2PJmdrlZ8JmGltpGx5N3va3hJLJFL1XZal3VLo9GDPXrUcMtYy6/Q39E7a43zq6 SAxIJUSmYsQlN0AqEI/Te7QrYdRbdQvgjZhWqv57ZOmlLMUjKqByYk85snKqaqpvkJYp 07ilUQzC3Y9KPOqXO7LLupGqGYozewczX3s+GVCGLX3VUjkKFARmG++0QtHYyD1rJnpV bT5CDfyLEvmZOJUpPtYPIlxbNRjuPltVH52mU90sEbHBeLrPzpdvQ9kh1iP0D6n2bvel E/W95///+qaisdSCsw7NA0k1fi0QoZMiZ+86MaFWgqEMZflBakQlcCNqAiezqz2kmMqr DroA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject:dmarc-filter:arc-authentication-results; bh=83KjWuYB+ZBtqL7JbpgZFwXGwLPzl8+EekVUZi6k/QY=; b=p9EIzgcdblOE8P8wbRBZBveKnUjMOPOJKvCwGf7o5f851Uk9bVb7vGxwmHp1b9GVs3 n2KJ2Kp+BHwEXHzAe7k1Z++C7Cpbq19RgHXOII4HKSZAOjqL9qKFCFvbso3TmkKFXp1d GCCP2S9Qlmb4eTOEaSgwqJpIYCigl+HzBzh3NJHO4Dg4j9rFw+r3pbZkzer7hUa2aO2K Bhv2IKoawAF0U6G42IkM0RdRBkeH2bppktG/9DCdyBDJ1Esh3NzR9hbnsUx7ELPJ/DpT WqIO6OysOKdgF+LvWA/3Oywv1b4CsfCPCItogzd02QLZez8A384oQvJz3DEDR5FFGIOb nxBQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c136si1087534pga.318.2018.03.09.11.03.59; Fri, 09 Mar 2018 11:04:14 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932696AbeCITAO (ORCPT + 99 others); Fri, 9 Mar 2018 14:00:14 -0500 Received: from mail.kernel.org ([198.145.29.99]:40760 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932669AbeCITAL (ORCPT ); Fri, 9 Mar 2018 14:00:11 -0500 Received: from localhost (unknown [104.132.51.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 500212177C; Fri, 9 Mar 2018 19:00:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 500212177C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=helgaas@kernel.org Subject: [PATCH v2 04/13] PCI/PM: Clear PCIe PME Status bit for Root Complex Event Collectors From: Bjorn Helgaas To: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "Rafael J. Wysocki" , linux-pm@vger.kernel.org, Keith Busch , Sinan Kaya , Lukas Wunner , Frederick Lawler Date: Fri, 09 Mar 2018 13:00:11 -0600 Message-ID: <152062201091.77693.14620978392756642834.stgit@bhelgaas-glaptop.roam.corp.google.com> In-Reply-To: <152062141493.77693.9630397416694091342.stgit@bhelgaas-glaptop.roam.corp.google.com> References: <152062141493.77693.9630397416694091342.stgit@bhelgaas-glaptop.roam.corp.google.com> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bjorn Helgaas Per PCIe r4.0, sec 6.1.6, Root Complex Event Collectors can generate PME interrupts on behalf of Root Complex Integrated Endpoints. Linux does not currently enable PME interrupts from RC Event Collectors, but fe31e69740ed ("PCI/PCIe: Clear Root PME Status bits early during system resume") suggests PME interrupts may be enabled by the platform for ACPI- based runtime wakeup. Clear the PCIe PME Status bit for Root Complex Event Collectors during resume, just like we already do for Root Ports. If the BIOS enables PME interrupts for an event collector and neglects to clear the status bit on resume, this change should fix the same bug as fe31e69740ed (PMEs not working after waking from a sleep state), but for Root Complex Integrated Endpoints. Signed-off-by: Bjorn Helgaas Reviewed-by: Rafael J. Wysocki --- drivers/pci/pci-driver.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index e561fa0f456c..204d2b54c2a4 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -533,7 +533,8 @@ static void pcie_pme_root_status_cleanup(struct pci_dev *pci_dev) * Clear those bits now just in case (shouldn't hurt). */ if (pci_is_pcie(pci_dev) && - pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT) + (pci_pcie_type(pci_dev) == PCI_EXP_TYPE_ROOT_PORT || + pci_pcie_type(pci_dev) == PCI_EXP_TYPE_RC_EC)) pcie_clear_root_pme_status(pci_dev); }