diff options
author | Tim Wawrzynczak <twawrzynczak@chromium.org> | 2021-09-16 20:18:16 -0600 |
---|---|---|
committer | Felix Held <felix-coreboot@felixheld.de> | 2022-02-10 12:48:00 +0000 |
commit | 3d121ae1a16751d55006c9b907a283f03c639197 (patch) | |
tree | 9fd9479168b1eab48326024959a5dc192413c764 /src/include/device | |
parent | 49be1a93467e6bd1bd61ec7889c0a6f24e824288 (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.h | 2 |
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) { |