summaryrefslogtreecommitdiff
path: root/src/include/device
diff options
context:
space:
mode:
authorTim Wawrzynczak <twawrzynczak@chromium.org>2021-09-16 20:18:16 -0600
committerFelix Held <felix-coreboot@felixheld.de>2022-02-10 12:48:00 +0000
commit3d121ae1a16751d55006c9b907a283f03c639197 (patch)
tree9fd9479168b1eab48326024959a5dc192413c764 /src/include/device
parent49be1a93467e6bd1bd61ec7889c0a6f24e824288 (diff)
device: Add pciexp_find_next_extended_cap function
Some PCIe devices have extended capability lists that contain multiples instances of the same capability. This patch provides a function similar to pciexp_find_extended_cap that can be used to search through multiple instances of the same capability by returning the offset of the next extended capability of the given type following the passed-in offset. The base functionality of searching for a given capability from an offset is extracted to a local helper function and both pciexp_find_extended_cap and pciexp_find_next_extended_cap use this helper. Change-Id: Ie68dc26012ba57650484c4f2ff53cc694a5347aa Signed-off-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57784 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
Diffstat (limited to 'src/include/device')
-rw-r--r--src/include/device/pciexp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/include/device/pciexp.h b/src/include/device/pciexp.h
index a72c2ec2a9..30c2a54620 100644
--- a/src/include/device/pciexp.h
+++ b/src/include/device/pciexp.h
@@ -31,6 +31,8 @@ void pciexp_hotplug_scan_bridge(struct device *dev);
extern struct device_operations default_pciexp_hotplug_ops_bus;
unsigned int pciexp_find_extended_cap(const struct device *dev, unsigned int cap);
+unsigned int pciexp_find_next_extended_cap(const struct device *dev, unsigned int cap,
+ unsigned int offset);
static inline bool pciexp_is_downstream_port(int type)
{