[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250611163047.860247-1-18255117159@163.com>
Date: Thu, 12 Jun 2025 00:30:47 +0800
From: Hans Zhang <18255117159@....com>
To: lpieralisi@...nel.org,
bhelgaas@...gle.com,
mani@...nel.org,
kwilczynski@...nel.org
Cc: robh@...nel.org,
jingoohan1@...il.com,
linux-pci@...r.kernel.org,
linux-kernel@...r.kernel.org,
Hans Zhang <18255117159@....com>
Subject: [PATCH 00/13] PCI: dwc: Refactor register access with dw_pcie_clear_and_set_dword helper
Register bit manipulation in DesignWare PCIe controllers currently
uses repetitive read-modify-write sequences across multiple drivers.
This pattern leads to code duplication and increases maintenance
complexity as each driver implements similar logic with minor variations.
This series introduces dw_pcie_clear_and_set_dword() to centralize atomic
register modification. The helper performs read-clear-set-write operations
in a single function, replacing open-coded implementations. Subsequent
patches refactor individual drivers to use this helper, eliminating
redundant code and ensuring consistent bit handling.
The change reduces overall code size by ~350 lines while improving
maintainability. Each controller driver is updated in a separate
patch to preserve bisectability and simplify review.
---
Hi all,
At the beginning, two patches were made, 0001*.patch, and the others were
one patch. After consideration, I still split the patches. If splitting
is not necessary, I will recombine them into two patches in future
versions.
---
Hans Zhang (13):
PCI: dwc: Add dw_pcie_clear_and_set_dword() for register bit
manipulation
PCI: dwc: Refactor dwc to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor dra7xx to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor imx6 to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor meson to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor armada8k to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor bt1 to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor rockchip to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor fu740 to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor qcom common to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor qcom-ep to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor rcar-gen4 to use dw_pcie_clear_and_set_dword()
PCI: dwc: Refactor tegra194 to use dw_pcie_clear_and_set_dword()
drivers/pci/controller/dwc/pci-dra7xx.c | 10 +-
drivers/pci/controller/dwc/pci-imx6.c | 26 ++-
drivers/pci/controller/dwc/pci-meson.c | 22 +--
drivers/pci/controller/dwc/pcie-armada8k.c | 48 ++----
drivers/pci/controller/dwc/pcie-bt1.c | 5 +-
.../controller/dwc/pcie-designware-debugfs.c | 67 +++-----
.../pci/controller/dwc/pcie-designware-ep.c | 20 +--
.../pci/controller/dwc/pcie-designware-host.c | 27 ++-
drivers/pci/controller/dwc/pcie-designware.c | 74 ++++-----
drivers/pci/controller/dwc/pcie-designware.h | 27 +--
drivers/pci/controller/dwc/pcie-dw-rockchip.c | 7 +-
drivers/pci/controller/dwc/pcie-fu740.c | 5 +-
drivers/pci/controller/dwc/pcie-qcom-common.c | 59 ++++---
drivers/pci/controller/dwc/pcie-qcom-ep.c | 14 +-
drivers/pci/controller/dwc/pcie-rcar-gen4.c | 23 +--
drivers/pci/controller/dwc/pcie-tegra194.c | 155 ++++++++----------
16 files changed, 239 insertions(+), 350 deletions(-)
base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
--
2.25.1
Powered by blists - more mailing lists