944-net-ethernet-mtk_wed-move-dlm-a-dedicated-dts-node.patch 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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 <[email protected]>
  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. Since the dlm memory region is not part of the RAM SoC, move dlm in a
  10. deidicated syscon node.
  11. This patch helps to keep backward-compatibility with older version of
  12. uboot codebase where we have a limit of 8 reserved-memory dts child
  13. nodes.
  14. Keep backward-compatibility with older dts version where dlm was defined
  15. as reserved-memory child node.
  16. Signed-off-by: Lorenzo Bianconi <[email protected]>
  17. ---
  18. drivers/net/ethernet/mediatek/mtk_wed.c | 19 +++++++++++++++++++
  19. 1 file changed, 19 insertions(+)
  20. --- a/drivers/net/ethernet/mediatek/mtk_wed.c
  21. +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
  22. @@ -1321,6 +1321,24 @@ mtk_wed_rro_alloc(struct mtk_wed_device
  23. struct device_node *np;
  24. int index;
  25. + np = of_parse_phandle(dev->hw->node, "mediatek,wo-dlm", 0);
  26. + if (np) {
  27. + struct resource res;
  28. + int ret;
  29. +
  30. + ret = of_address_to_resource(np, 0, &res);
  31. + of_node_put(np);
  32. +
  33. + if (ret < 0)
  34. + return ret;
  35. +
  36. + dev->rro.miod_phys = res.start;
  37. + goto out;
  38. + }
  39. +
  40. + /* For backward compatibility, we need to check if DLM
  41. + * node is defined through reserved memory property.
  42. + */
  43. index = of_property_match_string(dev->hw->node, "memory-region-names",
  44. "wo-dlm");
  45. if (index < 0)
  46. @@ -1337,6 +1355,7 @@ mtk_wed_rro_alloc(struct mtk_wed_device
  47. return -ENODEV;
  48. dev->rro.miod_phys = rmem->base;
  49. +out:
  50. dev->rro.fdbk_phys = MTK_WED_MIOD_COUNT + dev->rro.miod_phys;
  51. return mtk_wed_rro_ring_alloc(dev, &dev->rro.ring,