aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch')
-rw-r--r--target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch181
1 files changed, 0 insertions, 181 deletions
diff --git a/target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch b/target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch
deleted file mode 100644
index 837a8bf0ad..0000000000
--- a/target/linux/generic/pending-5.15/737-02-net-ethernet-mtk_eth_soc-move-MAX_DEVS-in-mtk_soc_da.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 5af2b2dc4d6ba0ff7696e79f18e5b2bf862194eb Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Tue, 7 Mar 2023 15:55:24 +0000
-Subject: [PATCH 2/7] net: ethernet: mtk_eth_soc: move MAX_DEVS in mtk_soc_data
-
-This is a preliminary patch to add MT7988 SoC support since it runs 3
-macs instead of 2.
-
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
-Signed-off-by: Daniel Golle <daniel@makrotopia.org>
----
- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 34 +++++++++++++++++++--
- drivers/net/ethernet/mediatek/mtk_eth_soc.h | 11 +++----
- 2 files changed, 36 insertions(+), 9 deletions(-)
-
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -3972,7 +3972,10 @@ static void mtk_sgmii_destroy(struct mtk
- {
- int i;
-
-- for (i = 0; i < MTK_MAX_DEVS; i++)
-+ if (!eth->sgmii_pcs)
-+ return;
-+
-+ for (i = 0; i < eth->soc->num_devs; i++)
- mtk_pcs_lynxi_destroy(eth->sgmii_pcs[i]);
- }
-
-@@ -4425,7 +4428,12 @@ static int mtk_sgmii_init(struct mtk_eth
- u32 flags;
- int i;
-
-- for (i = 0; i < MTK_MAX_DEVS; i++) {
-+ eth->sgmii_pcs = devm_kzalloc(eth->dev,
-+ sizeof(*eth->sgmii_pcs) *
-+ eth->soc->num_devs,
-+ GFP_KERNEL);
-+
-+ for (i = 0; i < eth->soc->num_devs; i++) {
- np = of_parse_phandle(eth->dev->of_node, "mediatek,sgmiisys", i);
- if (!np)
- break;
-@@ -4470,6 +4478,18 @@ static int mtk_probe(struct platform_dev
- if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628))
- eth->ip_align = NET_IP_ALIGN;
-
-+ eth->netdev = devm_kzalloc(eth->dev,
-+ sizeof(*eth->netdev) * eth->soc->num_devs,
-+ GFP_KERNEL);
-+ if (!eth->netdev)
-+ return -ENOMEM;
-+
-+ eth->mac = devm_kzalloc(eth->dev,
-+ sizeof(*eth->mac) * eth->soc->num_devs,
-+ GFP_KERNEL);
-+ if (!eth->mac)
-+ return -ENOMEM;
-+
- spin_lock_init(&eth->page_lock);
- spin_lock_init(&eth->tx_irq_lock);
- spin_lock_init(&eth->rx_irq_lock);
-@@ -4655,7 +4675,7 @@ static int mtk_probe(struct platform_dev
- goto err_free_dev;
- }
-
-- for (i = 0; i < MTK_MAX_DEVS; i++) {
-+ for (i = 0; i < eth->soc->num_devs; i++) {
- if (!eth->netdev[i])
- continue;
-
-@@ -4732,6 +4752,7 @@ static const struct mtk_soc_data mt2701_
- .hw_features = MTK_HW_FEATURES,
- .required_clks = MT7623_CLKS_BITMAP,
- .required_pctl = true,
-+ .num_devs = 2,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4750,6 +4771,7 @@ static const struct mtk_soc_data mt7621_
- .required_pctl = false,
- .offload_version = 1,
- .hash_offset = 2,
-+ .num_devs = 2,
- .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
-@@ -4771,6 +4793,7 @@ static const struct mtk_soc_data mt7622_
- .offload_version = 2,
- .hash_offset = 2,
- .has_accounting = true,
-+ .num_devs = 2,
- .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
-@@ -4790,6 +4813,7 @@ static const struct mtk_soc_data mt7623_
- .required_pctl = true,
- .offload_version = 1,
- .hash_offset = 2,
-+ .num_devs = 2,
- .foe_entry_size = sizeof(struct mtk_foe_entry) - 16,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
-@@ -4809,6 +4833,7 @@ static const struct mtk_soc_data mt7629_
- .required_clks = MT7629_CLKS_BITMAP,
- .required_pctl = false,
- .has_accounting = true,
-+ .num_devs = 2,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
-@@ -4830,6 +4855,7 @@ static const struct mtk_soc_data mt7981_
- .hash_offset = 4,
- .foe_entry_size = sizeof(struct mtk_foe_entry),
- .has_accounting = true,
-+ .num_devs = 2,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma_v2),
- .rxd_size = sizeof(struct mtk_rx_dma_v2),
-@@ -4849,6 +4875,7 @@ static const struct mtk_soc_data mt7986_
- .required_pctl = false,
- .offload_version = 2,
- .hash_offset = 4,
-+ .num_devs = 2,
- .foe_entry_size = sizeof(struct mtk_foe_entry),
- .has_accounting = true,
- .txrx = {
-@@ -4867,6 +4894,7 @@ static const struct mtk_soc_data rt5350_
- .hw_features = MTK_HW_FEATURES_MT7628,
- .required_clks = MT7628_CLKS_BITMAP,
- .required_pctl = false,
-+ .num_devs = 2,
- .txrx = {
- .txd_size = sizeof(struct mtk_tx_dma),
- .rxd_size = sizeof(struct mtk_rx_dma),
---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-@@ -1018,6 +1018,7 @@ struct mtk_reg_map {
- * @required_pctl A bool value to show whether the SoC requires
- * the extra setup for those pins used by GMAC.
- * @hash_offset Flow table hash offset.
-+ * @num_devs SoC number of macs.
- * @foe_entry_size Foe table entry size.
- * @has_accounting Bool indicating support for accounting of
- * offloaded flows.
-@@ -1036,6 +1037,7 @@ struct mtk_soc_data {
- bool required_pctl;
- u8 offload_version;
- u8 hash_offset;
-+ u8 num_devs;
- u16 foe_entry_size;
- netdev_features_t hw_features;
- bool has_accounting;
-@@ -1051,9 +1053,6 @@ struct mtk_soc_data {
-
- #define MTK_DMA_MONITOR_TIMEOUT msecs_to_jiffies(1000)
-
--/* currently no SoC has more than 2 macs */
--#define MTK_MAX_DEVS 2
--
- /* struct mtk_eth - This is the main datasructure for holding the state
- * of the driver
- * @dev: The device pointer
-@@ -1108,14 +1107,14 @@ struct mtk_eth {
- spinlock_t tx_irq_lock;
- spinlock_t rx_irq_lock;
- struct net_device dummy_dev;
-- struct net_device *netdev[MTK_MAX_DEVS];
-- struct mtk_mac *mac[MTK_MAX_DEVS];
-+ struct net_device **netdev;
-+ struct mtk_mac **mac;
- int irq[3];
- u32 msg_enable;
- unsigned long sysclk;
- struct regmap *ethsys;
- struct regmap *infra;
-- struct phylink_pcs *sgmii_pcs[MTK_MAX_DEVS];
-+ struct phylink_pcs **sgmii_pcs;
- struct regmap *pctl;
- bool hwlro;
- refcount_t dma_refcnt;