summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-03-12 05:00:37 +0300
committerJakub Kicinski <kuba@kernel.org>2026-03-12 05:00:38 +0300
commitbd4d6b955df2333511d7800a5cf9c672d3a9cad5 (patch)
tree8cfda0aa1d59ffbfe08da605af180b5c3bde82a9
parent7e27d6202e90bc1c2ff16cd3118cb5456214ee42 (diff)
parent0ae998c4efd69fd5e331db7844b8cfaf07d47aea (diff)
downloadlinux-bd4d6b955df2333511d7800a5cf9c672d3a9cad5.tar.xz
Merge branch 'net-macb-clean-up-several-member-settings-of-macb_config-instances'
Kevin Hao says: ==================== net: macb: Clean up several member settings of macb_config instances While debugging an issue in the macb driver, I noticed that many macb_config instances have very similar member settings. This makes it difficult to identify the actual differences between these instances. This patch series aims to clean up some of these settings and clarify the specific configurations of each macb_config instance. No functional changes are introduced. ==================== Link: https://patch.msgid.link/20260310-macb-cleanup-v1-0-928c1a91a7dc@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/ethernet/cadence/macb_main.c92
1 files changed, 34 insertions, 58 deletions
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 3dcae4d5f74c..0524109d4753 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -4548,9 +4548,9 @@ static void macb_clks_disable(struct clk *pclk, struct clk *hclk, struct clk *tx
clk_bulk_disable_unprepare(ARRAY_SIZE(clks), clks);
}
-static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
- struct clk **hclk, struct clk **tx_clk,
- struct clk **rx_clk, struct clk **tsu_clk)
+static int macb_clk_init_dflt(struct platform_device *pdev, struct clk **pclk,
+ struct clk **hclk, struct clk **tx_clk,
+ struct clk **rx_clk, struct clk **tsu_clk)
{
struct macb_platform_data *pdata;
int err;
@@ -4633,7 +4633,20 @@ err_disable_pclk:
return err;
}
-static int macb_init(struct platform_device *pdev)
+static int macb_clk_init(struct platform_device *pdev, struct clk **pclk,
+ struct clk **hclk, struct clk **tx_clk,
+ struct clk **rx_clk, struct clk **tsu_clk,
+ const struct macb_config *config)
+{
+ if (config->clk_init)
+ return config->clk_init(pdev, pclk, hclk, tx_clk, rx_clk,
+ tsu_clk);
+ else
+ return macb_clk_init_dflt(pdev, pclk, hclk, tx_clk, rx_clk,
+ tsu_clk);
+}
+
+static int macb_init_dflt(struct platform_device *pdev)
{
struct net_device *dev = platform_get_drvdata(pdev);
unsigned int hw_q, q;
@@ -4788,6 +4801,15 @@ static int macb_init(struct platform_device *pdev)
return 0;
}
+static int macb_init(struct platform_device *pdev,
+ const struct macb_config *config)
+{
+ if (config->init)
+ return config->init(pdev);
+ else
+ return macb_init_dflt(pdev);
+}
+
static const struct macb_usrio_config macb_default_usrio = {
.mii = MACB_BIT(MII),
.rmii = MACB_BIT(RMII),
@@ -5241,7 +5263,7 @@ static int fu540_c000_clk_init(struct platform_device *pdev, struct clk **pclk,
struct clk_init_data init;
int err = 0;
- err = macb_clk_init(pdev, pclk, hclk, tx_clk, rx_clk, tsu_clk);
+ err = macb_clk_init_dflt(pdev, pclk, hclk, tx_clk, rx_clk, tsu_clk);
if (err)
return err;
@@ -5288,7 +5310,7 @@ static int fu540_c000_init(struct platform_device *pdev)
if (IS_ERR(mgmt->reg))
return PTR_ERR(mgmt->reg);
- return macb_init(pdev);
+ return macb_init_dflt(pdev);
}
static int init_reset_optional(struct platform_device *pdev)
@@ -5338,7 +5360,7 @@ static int init_reset_optional(struct platform_device *pdev)
return dev_err_probe(&pdev->dev, ret, "failed to reset controller");
}
- ret = macb_init(pdev);
+ ret = macb_init_dflt(pdev);
err_out_phy_exit:
if (ret)
@@ -5363,7 +5385,7 @@ static int eyeq5_init(struct platform_device *pdev)
if (ret)
return dev_err_probe(dev, ret, "failed to init PHY\n");
- ret = macb_init(pdev);
+ ret = macb_init_dflt(pdev);
if (ret)
phy_exit(bp->phy);
return ret;
@@ -5384,79 +5406,53 @@ static const struct macb_config fu540_c000_config = {
.clk_init = fu540_c000_clk_init,
.init = fu540_c000_init,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config at91sam9260_config = {
.caps = MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config sama5d3macb_config = {
.caps = MACB_CAPS_SG_DISABLED |
MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config pc302gem_config = {
.caps = MACB_CAPS_SG_DISABLED | MACB_CAPS_GIGABIT_MODE_AVAILABLE,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config sama5d2_config = {
.caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_JUMBO,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config sama5d29_config = {
.caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_GEM_HAS_PTP,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config sama5d3_config = {
.caps = MACB_CAPS_SG_DISABLED | MACB_CAPS_GIGABIT_MODE_AVAILABLE |
MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII | MACB_CAPS_JUMBO,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config sama5d4_config = {
.caps = MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII,
.dma_burst_length = 4,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config emac_config = {
.caps = MACB_CAPS_NEEDS_RSTONUBR | MACB_CAPS_MACB_IS_EMAC,
.clk_init = at91ether_clk_init,
.init = at91ether_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config np4_config = {
.caps = MACB_CAPS_USRIO_DISABLED,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config zynqmp_config = {
@@ -5464,19 +5460,14 @@ static const struct macb_config zynqmp_config = {
MACB_CAPS_JUMBO |
MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_BD_RD_PREFETCH,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
.init = init_reset_optional,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config zynq_config = {
.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE | MACB_CAPS_NO_GIGABIT_HALF |
MACB_CAPS_NEEDS_RSTONUBR,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
};
static const struct macb_config mpfs_config = {
@@ -5484,9 +5475,7 @@ static const struct macb_config mpfs_config = {
MACB_CAPS_JUMBO |
MACB_CAPS_GEM_HAS_PTP,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
.init = init_reset_optional,
- .usrio = &macb_default_usrio,
.max_tx_length = 4040, /* Cadence Erratum 1686 */
.jumbo_max_len = 4040,
};
@@ -5496,8 +5485,6 @@ static const struct macb_config sama7g5_gem_config = {
MACB_CAPS_USRIO_DEFAULT_IS_MII_GMII |
MACB_CAPS_MIIONRGMII | MACB_CAPS_GEM_HAS_PTP,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
.usrio = &sama7g5_usrio,
};
@@ -5506,8 +5493,6 @@ static const struct macb_config sama7g5_emac_config = {
MACB_CAPS_USRIO_HAS_CLKEN | MACB_CAPS_MIIONRGMII |
MACB_CAPS_GEM_HAS_PTP,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
.usrio = &sama7g5_usrio,
};
@@ -5517,10 +5502,8 @@ static const struct macb_config versal_config = {
MACB_CAPS_NEED_TSUCLK | MACB_CAPS_QUEUE_DISABLE |
MACB_CAPS_QBV,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
.init = init_reset_optional,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config eyeq5_config = {
@@ -5528,10 +5511,8 @@ static const struct macb_config eyeq5_config = {
MACB_CAPS_GEM_HAS_PTP | MACB_CAPS_QUEUE_DISABLE |
MACB_CAPS_NO_LSO | MACB_CAPS_EEE,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
.init = eyeq5_init,
.jumbo_max_len = 10240,
- .usrio = &macb_default_usrio,
};
static const struct macb_config raspberrypi_rp1_config = {
@@ -5540,9 +5521,6 @@ static const struct macb_config raspberrypi_rp1_config = {
MACB_CAPS_GEM_HAS_PTP |
MACB_CAPS_EEE,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
.jumbo_max_len = 10240,
};
@@ -5581,9 +5559,6 @@ static const struct macb_config default_gem_config = {
MACB_CAPS_JUMBO |
MACB_CAPS_GEM_HAS_PTP,
.dma_burst_length = 16,
- .clk_init = macb_clk_init,
- .init = macb_init,
- .usrio = &macb_default_usrio,
.jumbo_max_len = 10240,
};
@@ -5611,7 +5586,8 @@ static int macb_probe(struct platform_device *pdev)
if (!macb_config)
macb_config = &default_gem_config;
- err = macb_config->clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk);
+ err = macb_clk_init(pdev, &pclk, &hclk, &tx_clk, &rx_clk, &tsu_clk,
+ macb_config);
if (err)
return err;
@@ -5669,7 +5645,7 @@ static int macb_probe(struct platform_device *pdev)
bp->wol = 0;
device_set_wakeup_capable(&pdev->dev, 1);
- bp->usrio = macb_config->usrio;
+ bp->usrio = macb_config->usrio ? : &macb_default_usrio;
/* By default we set to partial store and forward mode for zynqmp.
* Disable if not set in devicetree.
@@ -5751,7 +5727,7 @@ static int macb_probe(struct platform_device *pdev)
bp->phy_interface = interface;
/* IP specific init */
- err = macb_config->init(pdev);
+ err = macb_init(pdev, macb_config);
if (err)
goto err_out_free_netdev;