All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/13] PCI: dwc: Refactor register access with dw_pcie_clear_and_set_dword helper
@ 2025-06-11 16:30 Hans Zhang
  2025-06-11 20:40 ` Bjorn Helgaas
  0 siblings, 1 reply; 5+ messages in thread
From: Hans Zhang @ 2025-06-11 16:30 UTC (permalink / raw)
  To: lpieralisi, bhelgaas, mani, kwilczynski
  Cc: robh, jingoohan1, linux-pci, linux-kernel, Hans Zhang

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-06-18 15:20 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-11 16:30 [PATCH 00/13] PCI: dwc: Refactor register access with dw_pcie_clear_and_set_dword helper Hans Zhang
2025-06-11 20:40 ` Bjorn Helgaas
2025-06-12  1:07   ` Hans Zhang
2025-06-18 14:57     ` Niklas Cassel
2025-06-18 15:19       ` Hans Zhang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.