[PATCH v7 0/3] PCI: Refactor PCIe speed validation and conversion functions
From: Hans Zhang
Date: Tue Apr 07 2026 - 09:07:49 EST
This series refactors PCIe speed validation and conversion logic to
shared functions in the public header, eliminating code duplication
and ensuring consistency across drivers.
---
Changes for v7:
- patch 0002 add #include <asm/bug.h> (Ilpo)
- s/u32 link_speed/enum pci_bus_speed link_speed/ (Ilpo)
- The return value of pci_bus_speed2lnkctl2 uses the variable ctrl2_speed
to avoid the abuse of variable types. (Ilpo)
Changes for v6:
https://patchwork.kernel.org/project/linux-pci/patch/20260406105613.1228673-1-18255117159@xxxxxxx/
- missing one line of code:
link_speed = pcie_get_link_speed(pci->max_link_speed);
Changes for v5:
https://patchwork.kernel.org/project/linux-pci/patch/20260406104708.1218648-1-18255117159@xxxxxxx/
- Rebase to v7.0-rc1. (pci/next tree)
Changes for v4:
https://patchwork.kernel.org/project/linux-pci/patch/20251102143206.111347-1-18255117159@xxxxxxx/
- Maintain O(1) array-based lookup for speed conversion (addressing
performance concerns from v3 feedback)
- Move pcie_valid_speed() and pci_bus_speed2lnkctl2() to pci.h
- Update dwc driver to use the shared functions
- Rebase to v6.18-rc3.
This addresses the feedback from Lukas Wunner and Manivannan Sadhasivam
on the v3 submission, ensuring no runtime performance regression while
achieving code reuse.
Changes for v3:
https://patchwork.kernel.org/project/linux-pci/patch/20250816154633.338653-1-18255117159@xxxxxxx/
- Rebase to v6.17-rc1.
- Gentle ping.
Changes for v2:
- s/PCIE_SPEED2LNKCTL2_TLS_ENC/PCIE_SPEED2LNKCTL2_TLS
- The patch commit message were modified.
---
Hans Zhang (3):
PCI: Add public pcie_valid_speed() for shared validation
PCI: Move pci_bus_speed2lnkctl2() to public header
PCI: dwc: Use common speed conversion function
drivers/pci/controller/dwc/pcie-designware.c | 28 +++++++-------------
drivers/pci/pci.h | 23 ++++++++++++++++
drivers/pci/pcie/bwctrl.c | 22 ---------------
3 files changed, 32 insertions(+), 41 deletions(-)
base-commit: 525e91d84dc085492b36d4b87abb7c1cc93fcb44
--
2.34.1