1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- From d9a52701f6677889cc3332ab7a888f35cd69cc76 Mon Sep 17 00:00:00 2001
- From: Weijie Gao <[email protected]>
- Date: Wed, 19 Jul 2023 17:16:59 +0800
- Subject: [PATCH 17/29] net: mediatek: optimize the switch reset delay wait
- time
- Not all switches requires 1 second delay after deasserting reset.
- MT7531 requires only maximum 200ms.
- This patch defines dedicated reset wait time for each switch chip, and will
- significantly improve the boot time for boards using MT7531.
- Signed-off-by: Weijie Gao <[email protected]>
- ---
- drivers/net/mtk_eth.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
- --- a/drivers/net/mtk_eth.c
- +++ b/drivers/net/mtk_eth.c
- @@ -127,6 +127,7 @@ struct mtk_eth_priv {
- u32 mt753x_smi_addr;
- u32 mt753x_phy_base;
- u32 mt753x_pmcr;
- + u32 mt753x_reset_wait_time;
-
- struct gpio_desc rst_gpio;
- int mcm;
- @@ -943,12 +944,12 @@ int mt753x_switch_init(struct mtk_eth_pr
- reset_assert(&priv->rst_mcm);
- udelay(1000);
- reset_deassert(&priv->rst_mcm);
- - mdelay(1000);
- + mdelay(priv->mt753x_reset_wait_time);
- } else if (dm_gpio_is_valid(&priv->rst_gpio)) {
- dm_gpio_set_value(&priv->rst_gpio, 0);
- udelay(1000);
- dm_gpio_set_value(&priv->rst_gpio, 1);
- - mdelay(1000);
- + mdelay(priv->mt753x_reset_wait_time);
- }
-
- ret = priv->switch_init(priv);
- @@ -1528,11 +1529,13 @@ static int mtk_eth_of_to_plat(struct ude
- priv->switch_init = mt7530_setup;
- priv->switch_mac_control = mt7530_mac_control;
- priv->mt753x_smi_addr = MT753X_DFL_SMI_ADDR;
- + priv->mt753x_reset_wait_time = 1000;
- } else if (!strcmp(str, "mt7531")) {
- priv->sw = SW_MT7531;
- priv->switch_init = mt7531_setup;
- priv->switch_mac_control = mt7531_mac_control;
- priv->mt753x_smi_addr = MT753X_DFL_SMI_ADDR;
- + priv->mt753x_reset_wait_time = 200;
- } else {
- printf("error: unsupported switch\n");
- return -EINVAL;
|