On Thu, Aug 28, 2025 at 9:00 AM Hans Zhang <18255117159@xxxxxxx> wrote: > > From: Hans Zhang <hans.zhang@xxxxxxxxxxx> > > 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_*_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. If RMW functions are an improvement, then they should go in io.h. I don't think they are because they obfuscate the exact register modifications and the possible need for locking. With common API, anyone that understands kernel APIs will know what's going on. With a driver specific API, then you have to go lookup what the API does exactly. So I don't think this is an improvement. Rob