[PATCH 00/42] of: reserved_mem: Introduce devres helpers and convert drivers
Liviu Dudau
liviu.dudau at arm.com
Tue Jul 7 04:39:54 PDT 2026
On Sat, Jul 04, 2026 at 01:08:13AM +0530, Mukesh Ojha wrote:
> Drivers using of_reserved_mem_device_init() and its variants must
> manually call of_reserved_mem_device_release() in their remove and
> error-unwind paths. This is repetitive boilerplate that is easy to
> get wrong, and several drivers have open-coded the teardown
> inconsistently or skipped it entirely, leading to dangling reserved
> memory references.
>
> This series introduces devres-managed wrappers —
> devm_of_reserved_mem_device_init(), devm_of_reserved_mem_device_init_by_idx(),
> and devm_of_reserved_mem_device_init_by_name() — that tie the reserved
> memory region lifetime to the device, releasing it automatically on
> unbind. The remaining 40 patches convert drivers across the drm, media,
> ASoC, remoteproc, firmware, mmc, memory and misc subsystems to use these
> helpers, yielding a net reduction of ~90 lines of boilerplate.
>
> This series depends on https://lore.kernel.org/lkml/20260703164457.4040457-1-mukesh.ojha@oss.qualcomm.com/
>
> Konrad Dybcio (1):
> of: reserved_mem: Introduce devres-managed initialization functions
>
> Mukesh Ojha (41):
> of: reserved_mem: Add devm_of_reserved_mem_device_init_by_name()
> firmware: qcom: scm: Use devm_of_reserved_mem_device_init()
> remoteproc: da8xx: Use devm_of_reserved_mem_device_init()
> remoteproc: keystone: Use devm_of_reserved_mem_device_init()
> media: synopsys: hdmirx: Use devm_of_reserved_mem_device_init()
> remoteproc: omap: Use devm_of_reserved_mem_device_init()
> drm: logicvc: Use devm_of_reserved_mem_device_init()
> drm: hdlcd: Use devm_of_reserved_mem_device_init()
> drm: pl111: Use devm_of_reserved_mem_device_init()
> remoteproc: mtk_scp: Use devm_of_reserved_mem_device_init()
> media: aspeed: Use devm_of_reserved_mem_device_init()
> media: nuvoton: npcm-video: Use devm_of_reserved_mem_device_init()
> memory: tegra210-emc: Use devm_of_reserved_mem_device_init_by_name()
> drm: komeda: Use devm_of_reserved_mem_device_init()
> drm: malidp: Use devm_of_reserved_mem_device_init()
For the hdlcd, komeda and malidp drivers:
Reviewed-by: Liviu Dudau <liviu.dudau at arm.com>
Best regards,
Liviu
> drm: ingenic: Use devm_of_reserved_mem_device_init()
> drm: kmb: Use devm_of_reserved_mem_device_init()
> drm: sun4i: Use devm_of_reserved_mem_device_init()
> drm: xlnx: zynqmp_dpsub: Use devm_of_reserved_mem_device_init()
> media: arm: mali-c55: Use devm_of_reserved_mem_device_init()
> media: mediatek: vpu: Use devm_of_reserved_mem_device_init()
> mmc: sdhci-of-bst: Use devm_of_reserved_mem_device_init_by_idx()
> remoteproc: ti_k3: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8192: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8196: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8183: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8189: Use devm_of_reserved_mem_device_init()
> ASoC: SOF: imx: Use devm_of_reserved_mem_device_init_by_name()
> staging: media: cedrus: Use devm_of_reserved_mem_device_init()
> ASoC: cix-ipbloq: Use devm_of_reserved_mem_device_init()
> drm: aspeed: Use devm_of_reserved_mem_device_init()
> drm: arcpgu: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8173: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8186: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8188: Use devm_of_reserved_mem_device_init()
> ASoC: mediatek: mt8195: Use devm_of_reserved_mem_device_init()
> ASoC: SOF: mediatek: mt8186: Use devm_of_reserved_mem_device_init()
> ASoC: SOF: mediatek: mt8195: Use devm_of_reserved_mem_device_init()
> misc: fastrpc: Use devm_of_reserved_mem_device_init()
> ASoC: fsl: imx-rpmsg: Use devm_of_reserved_mem_device_init_by_idx()
> ASoC: sprd: Use devm_of_reserved_mem_device_init()
>
> drivers/firmware/qcom/qcom_scm.c | 22 +++------
> .../gpu/drm/arm/display/komeda/komeda_dev.c | 4 +-
> drivers/gpu/drm/arm/hdlcd_drv.c | 6 +--
> drivers/gpu/drm/arm/malidp_drv.c | 4 +-
> drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 2 +-
> drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 13 +-----
> drivers/gpu/drm/kmb/kmb_drv.c | 12 +----
> drivers/gpu/drm/logicvc/logicvc_drm.c | 21 ++++-----
> drivers/gpu/drm/pl111/pl111_drv.c | 4 +-
> drivers/gpu/drm/sun4i/sun4i_drv.c | 4 +-
> drivers/gpu/drm/tiny/arcpgu.c | 2 +-
> drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 4 +-
> .../platform/arm/mali-c55/mali-c55-core.c | 12 ++---
> drivers/media/platform/aspeed/aspeed-video.c | 12 ++---
> drivers/media/platform/mediatek/vpu/mtk_vpu.c | 3 +-
> drivers/media/platform/nuvoton/npcm-video.c | 9 +---
> .../platform/synopsys/hdmirx/snps_hdmirx.c | 16 +------
> drivers/memory/tegra/tegra210-emc-core.c | 21 ++++-----
> drivers/misc/fastrpc.c | 2 +-
> drivers/mmc/host/sdhci-of-bst.c | 7 +--
> drivers/of/of_reserved_mem.c | 41 +++++++++++++++++
> drivers/remoteproc/da8xx_remoteproc.c | 10 +---
> drivers/remoteproc/keystone_remoteproc.c | 16 +------
> drivers/remoteproc/mtk_scp.c | 3 +-
> drivers/remoteproc/omap_remoteproc.c | 13 +-----
> drivers/remoteproc/ti_k3_common.c | 13 +-----
> drivers/remoteproc/ti_k3_common.h | 1 -
> .../staging/media/sunxi/cedrus/cedrus_hw.c | 6 +--
> include/linux/of_reserved_mem.h | 46 +++++++++++++++++++
> sound/hda/controllers/cix-ipbloq.c | 2 +-
> sound/soc/fsl/imx-rpmsg.c | 2 +-
> sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 2 +-
> sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 13 +-----
> sound/soc/mediatek/mt8186/mt8186-afe-pcm.c | 2 +-
> sound/soc/mediatek/mt8188/mt8188-afe-pcm.c | 2 +-
> sound/soc/mediatek/mt8189/mt8189-afe-pcm.c | 16 +------
> sound/soc/mediatek/mt8192/mt8192-afe-pcm.c | 11 +----
> sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 2 +-
> sound/soc/mediatek/mt8196/mt8196-afe-pcm.c | 14 +-----
> sound/soc/sof/imx/imx-common.c | 9 ++--
> sound/soc/sof/mediatek/mt8186/mt8186.c | 2 +-
> sound/soc/sof/mediatek/mt8195/mt8195.c | 2 +-
> sound/soc/sprd/sprd-pcm-dma.c | 3 +-
> 43 files changed, 162 insertions(+), 249 deletions(-)
>
> --
> 2.53.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯
More information about the Linux-mediatek
mailing list