diff options
| author | Marek Szyprowski <m.szyprowski@samsung.com> | 2026-03-25 10:00:17 +0100 |
|---|---|---|
| committer | Rob Herring (Arm) <robh@kernel.org> | 2026-03-26 14:12:02 -0500 |
| commit | abdd23c8849d45c6bdef0ab6facbbc63bddebbe1 (patch) | |
| tree | 1d449eac95d9ed06aff8034dd79be2b41c4b701a /drivers | |
| parent | 6de23f81a5e08be8fbf5e8d7e9febc72a5b5f27f (diff) | |
of: reserved_mem: remove fdt node from the structure
FDT node is not needed for anything besides the initialization, so it can
be simply passed as an argument to the reserved memory region init
function.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://patch.msgid.link/20260325090023.3175348-2-m.szyprowski@samsung.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/memory/tegra/tegra210-emc-table.c | 3 | ||||
| -rw-r--r-- | drivers/of/of_reserved_mem.c | 25 |
2 files changed, 13 insertions, 15 deletions
diff --git a/drivers/memory/tegra/tegra210-emc-table.c b/drivers/memory/tegra/tegra210-emc-table.c index 34a8785d2861..ac1d1e13482a 100644 --- a/drivers/memory/tegra/tegra210-emc-table.c +++ b/drivers/memory/tegra/tegra210-emc-table.c @@ -75,7 +75,8 @@ static const struct reserved_mem_ops tegra210_emc_table_ops = { .device_release = tegra210_emc_table_device_release, }; -static int tegra210_emc_table_init(struct reserved_mem *rmem) +static int tegra210_emc_table_init(unsigned long node, + struct reserved_mem *rmem) { pr_debug("Tegra210 EMC table at %pa, size %lu bytes\n", &rmem->base, (unsigned long)rmem->size); diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 1fd28f805610..6705b7afebf0 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -104,7 +104,8 @@ static void __init alloc_reserved_mem_array(void) reserved_mem = new_array; } -static void __init fdt_init_reserved_mem_node(struct reserved_mem *rmem); +static void __init fdt_init_reserved_mem_node(struct reserved_mem *rmem, + unsigned long node); /* * fdt_reserved_mem_save_node() - save fdt node for second pass initialization */ @@ -118,13 +119,12 @@ static void __init fdt_reserved_mem_save_node(unsigned long node, const char *un return; } - rmem->fdt_node = node; rmem->name = uname; rmem->base = base; rmem->size = size; /* Call the region specific initialization function */ - fdt_init_reserved_mem_node(rmem); + fdt_init_reserved_mem_node(rmem, node); reserved_mem_count++; } @@ -483,7 +483,8 @@ static const struct of_device_id __rmem_of_table_sentinel /* * __reserved_mem_init_node() - call region specific reserved memory init code */ -static int __init __reserved_mem_init_node(struct reserved_mem *rmem) +static int __init __reserved_mem_init_node(struct reserved_mem *rmem, + unsigned long node) { extern const struct of_device_id __reservedmem_of_table[]; const struct of_device_id *i; @@ -493,10 +494,10 @@ static int __init __reserved_mem_init_node(struct reserved_mem *rmem) reservedmem_of_init_fn initfn = i->data; const char *compat = i->compatible; - if (!of_flat_dt_is_compatible(rmem->fdt_node, compat)) + if (!of_flat_dt_is_compatible(node, compat)) continue; - ret = initfn(rmem); + ret = initfn(node, rmem); if (ret == 0) { pr_info("initialized node %s, compatible id %s\n", rmem->name, compat); @@ -526,11 +527,6 @@ static int __init __rmem_cmp(const void *a, const void *b) if (ra->size > rb->size) return 1; - if (ra->fdt_node < rb->fdt_node) - return -1; - if (ra->fdt_node > rb->fdt_node) - return 1; - return 0; } @@ -564,19 +560,20 @@ static void __init __rmem_check_for_overlap(void) /** * fdt_init_reserved_mem_node() - Initialize a reserved memory region * @rmem: reserved_mem struct of the memory region to be initialized. + * @node: fdt node of the initialized region * * This function is used to call the region specific initialization * function for a reserved memory region. */ -static void __init fdt_init_reserved_mem_node(struct reserved_mem *rmem) +static void __init fdt_init_reserved_mem_node(struct reserved_mem *rmem, + unsigned long node) { - unsigned long node = rmem->fdt_node; int err = 0; bool nomap; nomap = of_get_flat_dt_prop(node, "no-map", NULL) != NULL; - err = __reserved_mem_init_node(rmem); + err = __reserved_mem_init_node(rmem, node); if (err != 0 && err != -ENOENT) { pr_info("node %s compatible matching fail\n", rmem->name); if (nomap) |
