Re: [PATCH v6 0/3] PCI: Refactor PCIe speed validation and conversion functions

From: Shawn Lin

Date: Mon Apr 06 2026 - 20:36:30 EST


在 2026/04/06 星期一 18:56, Hans Zhang 写道:
This series refactors PCIe speed validation and conversion logic to
shared functions in the public header, eliminating code duplication
and ensuring consistency across drivers.


Reviewed-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx>

---
Changes for v6:
- 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 | 18 +++-------------
drivers/pci/pci.h | 22 ++++++++++++++++++++
drivers/pci/pcie/bwctrl.c | 22 --------------------
3 files changed, 25 insertions(+), 37 deletions(-)


base-commit: 525e91d84dc085492b36d4b87abb7c1cc93fcb44