From patchwork Sat Jun 5 00:23:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vinicius Costa Gomes X-Patchwork-Id: 12300953 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_NONE,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B50E9C4743E for ; Sat, 5 Jun 2021 00:24:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9BE99613D8 for ; Sat, 5 Jun 2021 00:24:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230522AbhFEA0B (ORCPT ); Fri, 4 Jun 2021 20:26:01 -0400 Received: from mga02.intel.com ([134.134.136.20]:53213 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230002AbhFEAZ5 (ORCPT ); Fri, 4 Jun 2021 20:25:57 -0400 IronPort-SDR: SVIjl3GhIa1BSldOsuzj7WVYEd6wI/VKASMQpc89wS6g0pQQ9xc0tGx6LrOU8Etc1bjauBKWBt Zh4wNULZy8AA== X-IronPort-AV: E=McAfee;i="6200,9189,10005"; a="191505926" X-IronPort-AV: E=Sophos;i="5.83,249,1616482800"; d="scan'208";a="191505926" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2021 17:24:09 -0700 IronPort-SDR: nItuFDDskkZO7rEAPbsgRKx90Y+Uuc+v8r6qvpdzeZWGgJbfWTWuCA7UAeW3viHq3OrhAEc6m1 gibixOyC2iWA== X-IronPort-AV: E=Sophos;i="5.83,249,1616482800"; d="scan'208";a="446862949" Received: from lmrivera-mobl.amr.corp.intel.com (HELO localhost.localdomain) ([10.251.24.65]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jun 2021 17:24:09 -0700 From: Vinicius Costa Gomes To: intel-wired-lan@lists.osuosl.org Cc: Vinicius Costa Gomes , sasha.neftin@intel.com, anthony.l.nguyen@intel.com, linux-pci@vger.kernel.org, bhelgaas@google.com, netdev@vger.kernel.org, mlichvar@redhat.com, richardcochran@gmail.com, hch@infradead.org, helgaas@kernel.org Subject: [PATCH next-queue v5 2/4] PCI: Add pcie_ptm_enabled() Date: Fri, 4 Jun 2021 17:23:54 -0700 Message-Id: <20210605002356.3996853-3-vinicius.gomes@intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210605002356.3996853-1-vinicius.gomes@intel.com> References: <20210605002356.3996853-1-vinicius.gomes@intel.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add a predicate that returns if PCIe PTM (Precision Time Measurement) is enabled. It will only return true if it's enabled in all the ports in the path from the device to the root. Signed-off-by: Vinicius Costa Gomes Acked-by: Bjorn Helgaas --- drivers/pci/pcie/ptm.c | 9 +++++++++ include/linux/pci.h | 3 +++ 2 files changed, 12 insertions(+) diff --git a/drivers/pci/pcie/ptm.c b/drivers/pci/pcie/ptm.c index 95d4eef2c9e8..8a4ad974c5ac 100644 --- a/drivers/pci/pcie/ptm.c +++ b/drivers/pci/pcie/ptm.c @@ -204,3 +204,12 @@ int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) return 0; } EXPORT_SYMBOL(pci_enable_ptm); + +bool pcie_ptm_enabled(struct pci_dev *dev) +{ + if (!dev) + return false; + + return dev->ptm_enabled; +} +EXPORT_SYMBOL(pcie_ptm_enabled); diff --git a/include/linux/pci.h b/include/linux/pci.h index a687dda262dd..fe7f264b2b15 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1619,9 +1619,12 @@ bool pci_ats_disabled(void); #ifdef CONFIG_PCIE_PTM int pci_enable_ptm(struct pci_dev *dev, u8 *granularity); +bool pcie_ptm_enabled(struct pci_dev *dev); #else static inline int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) { return -EINVAL; } +static inline bool pcie_ptm_enabled(struct pci_dev *dev) +{ return false; } #endif void pci_cfg_access_lock(struct pci_dev *dev);