From: Vidya Sagar <vidyas@nvidia.com>
To: <bhelgaas@google.com>, <lorenzo.pieralisi@arm.com>,
<treding@nvidia.com>, <jonathanh@nvidia.com>
Cc: <linux-tegra@vger.kernel.org>, <linux-pci@vger.kernel.org>,
<kthota@nvidia.com>, <mmaddireddy@nvidia.com>,
<vidyas@nvidia.com>, <sagar.tv@gmail.com>
Subject: [PATCH] PCI: Add CRS timeout for pci_device_is_present()
Date: Sat, 5 Oct 2019 23:51:29 +0530 [thread overview]
Message-ID: <20191005182129.32538-1-vidyas@nvidia.com> (raw)
Adds a 60 seconds timeout to consider CRS (Configuration request Retry
Status) from a downstream device when Vendor ID read is attempted by
an upstream device. This helps to work with devices that return CRS
during system resume. This also makes pci_device_is_present() consistent
with the probe path where 60 seconds timeout is already being used.
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
---
drivers/pci/pci.c | 3 ++-
drivers/pci/pci.h | 2 ++
drivers/pci/probe.c | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 95dc78ebdded..3ab9f6d3c8a6 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -5905,7 +5905,8 @@ bool pci_device_is_present(struct pci_dev *pdev)
if (pci_dev_is_disconnected(pdev))
return false;
- return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v, 0);
+ return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v,
+ PCI_CRS_TIMEOUT);
}
EXPORT_SYMBOL_GPL(pci_device_is_present);
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 3f6947ee3324..aa25c5fdc6a5 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -4,6 +4,8 @@
#include <linux/pci.h>
+#define PCI_CRS_TIMEOUT (60 * 1000) /* 60 sec*/
+
#define PCI_FIND_CAP_TTL 48
#define PCI_VSEC_ID_INTEL_TBT 0x1234 /* Thunderbolt */
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 7c5d68b807ef..6e44a03283c8 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2258,7 +2258,7 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
struct pci_dev *dev;
u32 l;
- if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, 60*1000))
+ if (!pci_bus_read_dev_vendor_id(bus, devfn, &l, PCI_CRS_TIMEOUT))
return NULL;
dev = pci_alloc_dev(bus);
--
2.17.1
next reply other threads:[~2019-10-05 18:21 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-05 18:21 Vidya Sagar [this message]
2019-10-14 8:20 ` [PATCH] PCI: Add CRS timeout for pci_device_is_present() Thierry Reding
2019-10-14 20:21 ` Sinan Kaya
2019-10-15 9:30 ` Thierry Reding
2019-10-15 11:10 ` Sinan Kaya
2019-10-15 12:14 ` Vidya Sagar
[not found] ` <afa16546-e63d-6eba-8be0-8e52339cd100@nvidia.com>
2019-10-25 11:58 ` Vidya Sagar
2019-10-26 13:59 ` Sinan Kaya
2019-11-04 11:43 ` Vidya Sagar
2019-11-04 16:52 ` Lorenzo Pieralisi
2019-11-04 17:39 ` Bjorn Helgaas
2019-11-05 10:55 ` Rafael J. Wysocki
2019-11-06 16:41 ` Bjorn Helgaas
2019-11-11 6:01 ` Vidya Sagar
2019-11-11 22:32 ` Bjorn Helgaas
2019-11-12 12:59 ` Thierry Reding
2019-11-12 14:21 ` Bjorn Helgaas
2019-11-12 17:59 ` Vidya Sagar
2019-11-12 18:58 ` Bjorn Helgaas
2019-11-13 5:39 ` Vidya Sagar
2019-11-13 11:20 ` Thierry Reding
2019-11-14 18:36 ` Bjorn Helgaas
2019-11-15 10:04 ` Vidya Sagar
2019-11-15 22:36 ` Bjorn Helgaas
2019-11-18 15:18 ` Vidya Sagar
2019-11-12 17:59 ` Vidya Sagar
2019-10-15 12:03 ` Vidya Sagar
2019-10-15 11:34 ` Vidya Sagar
2019-10-14 10:45 ` Andrew Murray
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=20191005182129.32538-1-vidyas@nvidia.com \
--to=vidyas@nvidia.com \
--cc=bhelgaas@google.com \
--cc=jonathanh@nvidia.com \
--cc=kthota@nvidia.com \
--cc=linux-pci@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=mmaddireddy@nvidia.com \
--cc=sagar.tv@gmail.com \
--cc=treding@nvidia.com \
/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).