linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vidya Sagar <vidyas@nvidia.com>
To: <treding@nvidia.com>, <bhelgaas@google.com>, <rajatja@google.com>,
	<yinghai@kernel.org>, <david.daney@cavium.com>,
	<Julia.Lawall@lip6.fr>
Cc: <linux-tegra@vger.kernel.org>, <linux-pci@vger.kernel.org>,
	<kthota@nvidia.com>, <mmaddireddy@nvidia.com>,
	<vidyas@nvidia.com>
Subject: [PATCH V2 1/4] PCI/ASPM: Add API to supply LTR L1.2 threshold
Date: Tue, 31 Oct 2017 09:52:46 +0530	[thread overview]
Message-ID: <1509423769-10522-2-git-send-email-vidyas@nvidia.com> (raw)
In-Reply-To: <1509423769-10522-1-git-send-email-vidyas@nvidia.com>

adds API for host controller drivers to specify LTR L1.2
threshold value if it is different from the default value.
weak implementation of the API is added to supply default
value

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
---
V2:
* removed dummy implementation of pcie_aspm_init_link_state() API

 drivers/pci/pcie/aspm.c  | 11 ++++++++---
 include/linux/pci-aspm.h |  1 +
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
index 1dfa10cc566b..c6e8604796e5 100644
--- a/drivers/pci/pcie/aspm.c
+++ b/drivers/pci/pcie/aspm.c
@@ -436,6 +436,11 @@ static struct pci_dev *pci_function_0(struct pci_bus *linkbus)
 	return NULL;
 }
 
+u32 __weak pcie_aspm_get_ltr_l_1_2_threshold(void)
+{
+	return LTR_L1_2_THRESHOLD_BITS;
+}
+
 /* Calculate L1.2 PM substate timing parameters */
 static void aspm_calc_l1ss_info(struct pcie_link_state *link,
 				struct aspm_register_info *upreg,
@@ -458,10 +463,10 @@ static void aspm_calc_l1ss_info(struct pcie_link_state *link,
 	else
 		link->l1ss.ctl1 |= val2 << 8;
 	/*
-	 * We currently use LTR L1.2 threshold to be fixed constant picked from
-	 * Intel's coreboot.
+	 * Get LTR L1.2 threshold value specific to a platform if present
+	 * Otherwise, get a constant value picked from Intel's coreboot.
 	 */
-	link->l1ss.ctl1 |= LTR_L1_2_THRESHOLD_BITS;
+	link->l1ss.ctl1 |= pcie_aspm_get_ltr_l_1_2_threshold();
 
 	/* Choose the greater of the two T_pwr_on */
 	val1 = (upreg->l1ss_cap >> 19) & 0x1F;
diff --git a/include/linux/pci-aspm.h b/include/linux/pci-aspm.h
index 207c561fb40e..3a083f4ffe71 100644
--- a/include/linux/pci-aspm.h
+++ b/include/linux/pci-aspm.h
@@ -30,6 +30,7 @@ void pcie_aspm_powersave_config_link(struct pci_dev *pdev);
 void pci_disable_link_state(struct pci_dev *pdev, int state);
 void pci_disable_link_state_locked(struct pci_dev *pdev, int state);
 void pcie_no_aspm(void);
+u32 pcie_aspm_get_ltr_l_1_2_threshold(void);
 #else
 static inline void pcie_aspm_init_link_state(struct pci_dev *pdev)
 {
-- 
2.7.4

  reply	other threads:[~2017-10-31  4:23 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-31  4:22 [PATCH V2 0/4] Add ASPM-L1 Substates support for Tegra Vidya Sagar
2017-10-31  4:22 ` Vidya Sagar [this message]
2017-10-31  4:22 ` [PATCH V2 2/4] PCI: tegra: Enable ASPM-L1 capability advertisement Vidya Sagar
2017-10-31  4:22 ` [PATCH V2 3/4] PCI: tegra: Apply sw fixups to support ASPM-L1 Sub-States Vidya Sagar
2017-11-07 22:50   ` Bjorn Helgaas
2017-11-08  8:45     ` Vidya Sagar
2017-11-08 17:48       ` Bjorn Helgaas
2017-11-10 10:07         ` Vidya Sagar
2017-11-10 21:29           ` Bjorn Helgaas
2017-11-12 11:51             ` Vidya Sagar
2017-11-14 23:13               ` Bjorn Helgaas
2017-11-17 14:05                 ` Vidya Sagar
2017-11-17 23:49                   ` Bjorn Helgaas
2017-10-31  4:22 ` [PATCH V2 4/4] PCI: tegra: fixups to avoid unnecessary wakeup from ASPM-L1.2 Vidya Sagar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1509423769-10522-2-git-send-email-vidyas@nvidia.com \
    --to=vidyas@nvidia.com \
    --cc=Julia.Lawall@lip6.fr \
    --cc=bhelgaas@google.com \
    --cc=david.daney@cavium.com \
    --cc=kthota@nvidia.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=mmaddireddy@nvidia.com \
    --cc=rajatja@google.com \
    --cc=treding@nvidia.com \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).