Thread (15 messages) 15 messages, 4 authors, 2025-08-03

Re: [PATCH net-next v2 3/3] net: ipa: Grab IMEM slice base/size from DTS

From: Simon Horman <horms@kernel.org>
Date: 2025-05-28 15:08:52
Also in: linux-arm-msm, linux-devicetree, lkml

On Tue, May 27, 2025 at 01:26:43PM +0200, Konrad Dybcio wrote:
From: Konrad Dybcio <redacted>

This is a detail that differ per chip, and not per IPA version (and
there are cases of the same IPA versions being implemented across very
very very different SoCs).

This region isn't actually used by the driver, but we most definitely
want to iommu-map it, so that IPA can poke at the data within.

Reviewed-by: Alex Elder <redacted>
Acked-by: Dmitry Baryshkov <redacted>
Signed-off-by: Konrad Dybcio <redacted>
...
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/ipa/ipa_mem.c b/drivers/net/ipa/ipa_mem.c
...
quoted hunk ↗ jump to hunk
@@ -656,7 +659,23 @@ int ipa_mem_init(struct ipa *ipa, struct platform_device *pdev,
 	ipa->mem_addr = res->start;
 	ipa->mem_size = resource_size(res);
 
-	ret = ipa_imem_init(ipa, mem_data->imem_addr, mem_data->imem_size);
+	ipa_slice_np = of_parse_phandle(dev->of_node, "sram", 0);
+	if (ipa_slice_np) {
+		ret = of_address_to_resource(ipa_slice_np, 0, res);
+		of_node_put(ipa_slice_np);
+		if (ret)
+			return ret;
+
+		imem_base = res->start;
+		imem_size = resource_size(res);
+	} else {
+		/* Backwards compatibility for DTs lacking
+		 * an explicit reference */
+		imem_base = mem_data->imem_addr;
+		imem_size = mem_data->imem_size;
+	}
+
+	ret = ipa_imem_init(ipa, imem_base, imem_size);
Thanks for the update to use imem_base and imem_size on the line above.

Reviewed-by: Simon Horman <horms@kernel.org>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help