summaryrefslogtreecommitdiff
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorZhi Wang <zhiw@nvidia.com>2026-09-06 09:04:04 +0300
committerDanilo Krummrich <dakr@kernel.org>2026-10-13 01:12:58 +0200
commitd4ffc4896b3e709c6a5d7e5a78a1fddfc774fa25 (patch)
tree0a7acdb0ec1cebed0030246b8b7c88b0abb683f8 /include/uapi/linux
parent3aac49b236c137fa77b97968d25338a28c49f0f8 (diff)
downloadlinux-next-d4ffc4896b3e709c6a5d7e5a78a1fddfc774fa25.tar.gz
linux-next-d4ffc4896b3e709c6a5d7e5a78a1fddfc774fa25.zip
rust: pci: add extended capability and SR-IOV support
Rust PCI drivers have no typed interface for locating and accessing PCIe extended capabilities. The SR-IOV extended capability describes VF topology and VF BARs. Expose this information through the Rust PCI abstraction so drivers can use the existing typed configuration-space accessors instead of raw bindings. Define ExtCapability to associate a capability ID with a register layout, and add ConfigSpace::find_ext_capability() to locate and project that layout. Bound the view at the next capability or the end of extended configuration space. Add ExtSriovRegs and a decoded VF BAR iterator that reads and validates all six VF BAR register slots up front, yields decoded BAR addresses and widths in logical order, and keeps the raw configuration-space slot advancement internal. Since PCI_EXT_CAP_NEXT() is a function-like macro, expose it through a Rust helper. Keep raw SR-IOV registers private because PCI core owns their state. Expose the current First VF Offset through a read-only accessor because the Nova GSP ABI needs the raw 16-bit First VF Offset in Routing ID space. The pci_iov_virtfn_devfn() helper instead returns the low eight bits of a calculated VF Routing ID. Cc: Alexandre Courbot <acourbot@nvidia.com> Cc: Gary Guo <gary@garyguo.net> Cc: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Zhi Wang <zhiw@nvidia.com> Link: https://patch.msgid.link/20260906060404.3336193-2-zhiw@nvidia.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions