209580d64a4541f3c6f919cc01dfaced46b33ee5
[openwrt/openwrt.git] / target / linux / mediatek / patches-6.1 / 944-net-ethernet-mtk_wed-move-dlm-a-dedicated-dts-node.patch
1 From b74ba226be2c45091b93bd49192bdd6d2178729e Mon Sep 17 00:00:00 2001
2 Message-Id: <b74ba226be2c45091b93bd49192bdd6d2178729e.1678718888.git.lorenzo@kernel.org>
3 In-Reply-To: <f3565e6c2276411275e707a5442d3f69cc111273.1678718888.git.lorenzo@kernel.org>
4 References: <f3565e6c2276411275e707a5442d3f69cc111273.1678718888.git.lorenzo@kernel.org>
5 From: Lorenzo Bianconi <lorenzo@kernel.org>
6 Date: Mon, 13 Mar 2023 15:45:16 +0100
7 Subject: [PATCH net-next 3/3] net: ethernet: mtk_wed: move dlm a dedicated dts
8 node
9
10 Since the dlm memory region is not part of the RAM SoC, move dlm in a
11 deidicated syscon node.
12 This patch helps to keep backward-compatibility with older version of
13 uboot codebase where we have a limit of 8 reserved-memory dts child
14 nodes.
15 Keep backward-compatibility with older dts version where dlm was defined
16 as reserved-memory child node.
17
18 Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
19 ---
20 drivers/net/ethernet/mediatek/mtk_wed.c | 19 +++++++++++++++++++
21 1 file changed, 19 insertions(+)
22
23 --- a/drivers/net/ethernet/mediatek/mtk_wed.c
24 +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
25 @@ -814,6 +814,24 @@ mtk_wed_rro_alloc(struct mtk_wed_device
26 struct device_node *np;
27 int index;
28
29 + np = of_parse_phandle(dev->hw->node, "mediatek,wo-dlm", 0);
30 + if (np) {
31 + struct resource res;
32 + int ret;
33 +
34 + ret = of_address_to_resource(np, 0, &res);
35 + of_node_put(np);
36 +
37 + if (ret < 0)
38 + return ret;
39 +
40 + dev->rro.miod_phys = res.start;
41 + goto out;
42 + }
43 +
44 + /* For backward compatibility, we need to check if DLM
45 + * node is defined through reserved memory property.
46 + */
47 index = of_property_match_string(dev->hw->node, "memory-region-names",
48 "wo-dlm");
49 if (index < 0)
50 @@ -830,6 +848,7 @@ mtk_wed_rro_alloc(struct mtk_wed_device
51 return -ENODEV;
52
53 dev->rro.miod_phys = rmem->base;
54 +out:
55 dev->rro.fdbk_phys = MTK_WED_MIOD_COUNT + dev->rro.miod_phys;
56
57 return mtk_wed_rro_ring_alloc(dev, &dev->rro.ring,