Re: [PATCH v2 0/4] of: Common "memory-region" parsing

From: Tanmay Shah
Date: Thu May 01 2025 - 11:44:56 EST


Hi Mathieu,

I tested this patchset on top of recent for-next branch. I don't see issue on AMD-xlnx ZynqMP platform. With this:

Tested-by: Tanmay Shah <tanmay.shah@xxxxxxx>

On 4/24/25 9:14 AM, Mathieu Poirier wrote:
Arnaud, Daniel, Iuliana, Andrew and Tanmay - please test this patchset
on the platforms you are working on.

Thanks,
Mathieu

On Wed, 23 Apr 2025 at 13:42, Rob Herring (Arm) <robh@xxxxxxxxxx> wrote:

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-robh@xxxxxxxxxx

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

Signed-off-by: Rob Herring (Arm) <robh@xxxxxxxxxx>
---
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) <robh@xxxxxxxxxx>