While there's a common function to parse "memory-region" properties for
DMA pool regions, there's not anything for driver private regions. As a
result, drivers have resorted to parsing "memory-region" properties
themselves repeating the same pattern over and over. To fix this, this
series adds 2 functions to handle those cases:
of_reserved_mem_region_to_resource() and of_reserved_mem_region_count().

I've converted the whole tree, but just including remoteproc here as
it has the most cases. I intend to apply the first 3 patches for 6.16
so the driver conversions can be applied for 6.17.

A git tree with all the drivers converted is here[1].

v2:
- Fix of_dma_set_restricted_buffer() to maintain behavior on warning msg
- Export devm_ioremap_resource_wc()
- Rework handling of resource name to drop unit-address from name as it 
  was before.
- Link to v1: 
  https://lore.kernel.org/all/20250317232426.952188-1-r...@kernel.org

[1] git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git 
dt/memory-region

Signed-off-by: Rob Herring (Arm) <r...@kernel.org>
---
Rob Herring (Arm) (4):
      of: reserved_mem: Add functions to parse "memory-region"
      of: Simplify of_dma_set_restricted_buffer() to use of_for_each_phandle()
      devres: Export devm_ioremap_resource_wc()
      remoteproc: Use of_reserved_mem_region_* functions for "memory-region"

 drivers/of/device.c                       | 31 +++++-------
 drivers/of/of_reserved_mem.c              | 80 +++++++++++++++++++++++++++++++
 drivers/remoteproc/imx_dsp_rproc.c        | 45 +++++++----------
 drivers/remoteproc/imx_rproc.c            | 68 +++++++++++---------------
 drivers/remoteproc/qcom_q6v5_adsp.c       | 24 ++++------
 drivers/remoteproc/qcom_q6v5_mss.c        | 60 ++++++++---------------
 drivers/remoteproc/qcom_q6v5_pas.c        | 69 ++++++++++----------------
 drivers/remoteproc/qcom_q6v5_wcss.c       | 25 ++++------
 drivers/remoteproc/qcom_wcnss.c           | 23 ++++-----
 drivers/remoteproc/rcar_rproc.c           | 36 ++++++--------
 drivers/remoteproc/st_remoteproc.c        | 41 ++++++++--------
 drivers/remoteproc/stm32_rproc.c          | 44 ++++++++---------
 drivers/remoteproc/ti_k3_dsp_remoteproc.c | 28 +++++------
 drivers/remoteproc/ti_k3_m4_remoteproc.c  | 28 +++++------
 drivers/remoteproc/ti_k3_r5_remoteproc.c  | 28 +++++------
 drivers/remoteproc/xlnx_r5_remoteproc.c   | 51 ++++++++------------
 include/linux/of_reserved_mem.h           | 26 ++++++++++
 lib/devres.c                              |  1 +
 18 files changed, 339 insertions(+), 369 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250423-dt-memory-region-v2-a2b15caacc63

Best regards,
-- 
Rob Herring (Arm) <r...@kernel.org>


Reply via email to