Received: by 10.213.65.68 with SMTP id h4csp55156imn; Fri, 30 Mar 2018 14:08:39 -0700 (PDT) X-Google-Smtp-Source: AIpwx49Yf+bVE8ptdz1u6fEbYRNIXv7kmy/4yhG1o/YudvFpIkH+pTFmt1OynIYgPVoc5fpDJ8MP X-Received: by 2002:a17:902:aa04:: with SMTP id be4-v6mr600226plb.90.1522444119504; Fri, 30 Mar 2018 14:08:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522444119; cv=none; d=google.com; s=arc-20160816; b=MIRMpHn1WmolFSq+1a2M+p3cghD+6a9YVbXMQHv9f2fzlaGuaHRyvFn9Wc35Hia9XR jANtCao8oKkZSc8SMZJ0+oOakUQmUrJT6pL2DNLTg0lfzXoca2DLjnYzb00w6Z63roe2 w0DWHDsEji3yo3bMtsIryCAOxY4D2DW/w+L9BMyb/1493rewxQdyUUpBSMAFE8DAF9iV 2W4DxhXd6oL59xqAdsR+cWUmFa0vzqUxR2m2L/rI2EBztqJA39qoa41fctNYqRJD1+Yr Y6FdHVNGq8A+egyi3a4xpiV7xrnPz6ushb0GPwyEa7GywH5LuiSC1MgrADHCo/S0ikJY VNWQ== 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=CJz7CKMFhXmeWVCH0tg3jfyKVTyrHSRCU/88YMCquGQ=; b=0MywTzTBEYnxhqrdIDcCc9do0QNtj6mlh934SidiOFR/Bv0dRMBmvx4PYjkdqoxEai biHrOPa3NZO10rPMwwNJKQ6bzi/fh7NJCudjLHazCtQVno25AQsn2EOPBA7dmoM+NxSm Hlg0xJPx8R4lQpLNd92X/DvxzbEvUsjBBiub5zHlW/VHSINZC/3+XyW1uk7ZtHf696ey e8US98vaxzIifzugJFYUTN6GZKivn21KWYZIVKkh+SlY5HL9VjqpQRaqoh4aSrpLCG58 n+0qaPCT4uobSKgCc71EtcdVLPuFclKYfq96vSIgNHlH1/4Heczi9FIG8KQCFtR5YdWf f0Nw== 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 w34-v6si9238086pla.319.2018.03.30.14.08.24; Fri, 30 Mar 2018 14:08:39 -0700 (PDT) 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 S1753278AbeC3VGd (ORCPT + 99 others); Fri, 30 Mar 2018 17:06:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:34020 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752639AbeC3VGb (ORCPT ); Fri, 30 Mar 2018 17:06:31 -0400 Received: from localhost (unknown [69.71.5.252]) (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 EAA9321777; Fri, 30 Mar 2018 21:06:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EAA9321777 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 v5 14/14] PCI: Remove unused pcie_get_minimum_link() From: Bjorn Helgaas To: Tal Gilboa Cc: Tariq Toukan , Jacob Keller , Ariel Elior , Ganesh Goudar , Jeff Kirsher , everest-linux-l2@cavium.com, intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Date: Fri, 30 Mar 2018 16:06:29 -0500 Message-ID: <152244398928.135666.9455627241901450661.stgit@bhelgaas-glaptop.roam.corp.google.com> In-Reply-To: <152244269202.135666.3064353823697623332.stgit@bhelgaas-glaptop.roam.corp.google.com> References: <152244269202.135666.3064353823697623332.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 In some cases pcie_get_minimum_link() returned misleading information because it found the slowest link and the narrowest link without considering the total bandwidth of the link. For example, if the path contained a 16 GT/s x1 link and a 2.5 GT/s x16 link, pcie_get_minimum_link() returned 2.5 GT/s x1, which corresponds to 250 MB/s of bandwidth, not the actual available bandwidth of about 2000 MB/s for a 16 GT/s x1 link. Callers should use pcie_print_link_status() instead, or pcie_bandwidth_available() if they need more detailed information. Signed-off-by: Bjorn Helgaas --- drivers/pci/pci.c | 43 ------------------------------------------- include/linux/pci.h | 2 -- 2 files changed, 45 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index cec7aed09f6b..b6951c44ae6c 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5103,49 +5103,6 @@ int pcie_set_mps(struct pci_dev *dev, int mps) } EXPORT_SYMBOL(pcie_set_mps); -/** - * pcie_get_minimum_link - determine minimum link settings of a PCI device - * @dev: PCI device to query - * @speed: storage for minimum speed - * @width: storage for minimum width - * - * This function will walk up the PCI device chain and determine the minimum - * link width and speed of the device. - */ -int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed, - enum pcie_link_width *width) -{ - int ret; - - *speed = PCI_SPEED_UNKNOWN; - *width = PCIE_LNK_WIDTH_UNKNOWN; - - while (dev) { - u16 lnksta; - enum pci_bus_speed next_speed; - enum pcie_link_width next_width; - - ret = pcie_capability_read_word(dev, PCI_EXP_LNKSTA, &lnksta); - if (ret) - return ret; - - next_speed = pcie_link_speed[lnksta & PCI_EXP_LNKSTA_CLS]; - next_width = (lnksta & PCI_EXP_LNKSTA_NLW) >> - PCI_EXP_LNKSTA_NLW_SHIFT; - - if (next_speed < *speed) - *speed = next_speed; - - if (next_width < *width) - *width = next_width; - - dev = dev->bus->self; - } - - return 0; -} -EXPORT_SYMBOL(pcie_get_minimum_link); - /** * pcie_bandwidth_available - determine minimum link settings of a PCIe * device and its bandwidth limitation diff --git a/include/linux/pci.h b/include/linux/pci.h index 38f7957121ef..5ccee29fe1b1 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -1081,8 +1081,6 @@ int pcie_get_readrq(struct pci_dev *dev); int pcie_set_readrq(struct pci_dev *dev, int rq); int pcie_get_mps(struct pci_dev *dev); int pcie_set_mps(struct pci_dev *dev, int mps); -int pcie_get_minimum_link(struct pci_dev *dev, enum pci_bus_speed *speed, - enum pcie_link_width *width); u32 pcie_bandwidth_available(struct pci_dev *dev, struct pci_dev **limiting_dev, enum pci_bus_speed *speed, enum pcie_link_width *width);