716-v6.0-net-ethernet-mtk_eth_soc-move-wdma_base-definitions-.patch 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. From 0dcbe607cec32ccae23b02a641b8bd6191a328ae Mon Sep 17 00:00:00 2001
  2. Message-Id: <0dcbe607cec32ccae23b02a641b8bd6191a328ae.1662243796.git.lorenzo@kernel.org>
  3. In-Reply-To: <43a21841ce0175d29f23c34a65ceaaf9dd7eb8b7.1662243796.git.lorenzo@kernel.org>
  4. References: <43a21841ce0175d29f23c34a65ceaaf9dd7eb8b7.1662243796.git.lorenzo@kernel.org>
  5. From: Lorenzo Bianconi <[email protected]>
  6. Date: Tue, 23 Aug 2022 23:09:05 +0200
  7. Subject: [PATCH net-next 2/4] net: ethernet: mtk_eth_soc: move wdma_base
  8. definitions in mtk register map
  9. This is a preliminary patch to introduce mt7986 wed support.
  10. Signed-off-by: Lorenzo Bianconi <[email protected]>
  11. ---
  12. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 16 ++++++++++------
  13. drivers/net/ethernet/mediatek/mtk_eth_soc.h | 4 +---
  14. 2 files changed, 11 insertions(+), 9 deletions(-)
  15. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  16. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  17. @@ -75,6 +75,10 @@ static const struct mtk_reg_map mtk_reg_
  18. .gdm1_cnt = 0x2400,
  19. .gdma_to_ppe0 = 0x4444,
  20. .ppe_base = 0x0c00,
  21. + .wdma_base = {
  22. + [0] = 0x2800,
  23. + [1] = 0x2c00,
  24. + },
  25. };
  26. static const struct mtk_reg_map mt7628_reg_map = {
  27. @@ -130,6 +134,10 @@ static const struct mtk_reg_map mt7986_r
  28. .gdm1_cnt = 0x1c00,
  29. .gdma_to_ppe0 = 0x3333,
  30. .ppe_base = 0x2000,
  31. + .wdma_base = {
  32. + [0] = 0x4800,
  33. + [1] = 0x4c00,
  34. + },
  35. };
  36. /* strings used by ethtool */
  37. @@ -3966,16 +3974,12 @@ static int mtk_probe(struct platform_dev
  38. for (i = 0;; i++) {
  39. struct device_node *np = of_parse_phandle(pdev->dev.of_node,
  40. "mediatek,wed", i);
  41. - static const u32 wdma_regs[] = {
  42. - MTK_WDMA0_BASE,
  43. - MTK_WDMA1_BASE
  44. - };
  45. void __iomem *wdma;
  46. - if (!np || i >= ARRAY_SIZE(wdma_regs))
  47. + if (!np || i >= ARRAY_SIZE(eth->soc->reg_map->wdma_base))
  48. break;
  49. - wdma = eth->base + wdma_regs[i];
  50. + wdma = eth->base + eth->soc->reg_map->wdma_base[i];
  51. mtk_wed_add_hw(np, eth, wdma, i);
  52. }
  53. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
  54. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
  55. @@ -268,9 +268,6 @@
  56. #define TX_DMA_FPORT_MASK_V2 0xf
  57. #define TX_DMA_SWC_V2 BIT(30)
  58. -#define MTK_WDMA0_BASE 0x2800
  59. -#define MTK_WDMA1_BASE 0x2c00
  60. -
  61. /* QDMA descriptor txd4 */
  62. #define TX_DMA_CHKSUM (0x7 << 29)
  63. #define TX_DMA_TSO BIT(28)
  64. @@ -954,6 +951,7 @@ struct mtk_reg_map {
  65. u32 gdm1_cnt;
  66. u32 gdma_to_ppe0;
  67. u32 ppe_base;
  68. + u32 wdma_base[2];
  69. };
  70. /* struct mtk_eth_data - This is the structure holding all differences