diff options
author | Sushil Singh <sushilkumars@nvidia.com> | 2020-06-01 07:11:15 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2020-11-12 06:39:33 -0500 |
commit | f6ab6c0b03c834a87382fad5d295cc3f6c52dacf (patch) | |
tree | 2ad8e0ad530d89b72d0d32ddeead7af03aaa6f7d /drivers/net | |
parent | 3447f4450f38805a6003c25b06789ee0202943f8 (diff) |
eqos: remove configuring of PHY gpio in suspend
Issue: Configuring BRCM PHY GPIO to 0 leads to
power increment in SC7 use case
Fix: Remove configuring BRCM PHY GPIO in SC7 use case
for 18x based platforms
Bug 2976079
Change-Id: Ie483f7c1ef053a1d2240b5f96103bf59b7362903
Signed-off-by: Sushil Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2358867
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Aaron Tian <atian@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: Aaron Tian <atian@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/nvidia/eqos/drv.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/nvidia/eqos/init.c | 12 |
2 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/ethernet/nvidia/eqos/drv.c b/drivers/net/ethernet/nvidia/eqos/drv.c index f2e396031..ff46b675e 100644 --- a/drivers/net/ethernet/nvidia/eqos/drv.c +++ b/drivers/net/ethernet/nvidia/eqos/drv.c | |||
@@ -1218,10 +1218,9 @@ static int eqos_close(struct net_device *dev) | |||
1218 | if (pdata->phydev) { | 1218 | if (pdata->phydev) { |
1219 | phy_stop(pdata->phydev); | 1219 | phy_stop(pdata->phydev); |
1220 | phy_disconnect(pdata->phydev); | 1220 | phy_disconnect(pdata->phydev); |
1221 | 1221 | if (gpio_is_valid(pdata->phy_reset_gpio) && | |
1222 | if (gpio_is_valid(pdata->phy_reset_gpio)) | 1222 | (pdata->mac_ver > EQOS_MAC_CORE_4_10)) |
1223 | gpio_set_value(pdata->phy_reset_gpio, 0); | 1223 | gpio_set_value(pdata->phy_reset_gpio, 0); |
1224 | |||
1225 | pdata->phydev = NULL; | 1224 | pdata->phydev = NULL; |
1226 | } | 1225 | } |
1227 | 1226 | ||
diff --git a/drivers/net/ethernet/nvidia/eqos/init.c b/drivers/net/ethernet/nvidia/eqos/init.c index 423d21be8..c35b38839 100644 --- a/drivers/net/ethernet/nvidia/eqos/init.c +++ b/drivers/net/ethernet/nvidia/eqos/init.c | |||
@@ -1655,10 +1655,11 @@ static int eqos_suspend_noirq(struct device *dev) | |||
1655 | enable_irq_wake(pdata->phydev->irq); | 1655 | enable_irq_wake(pdata->phydev->irq); |
1656 | } else { | 1656 | } else { |
1657 | phy_stop(pdata->phydev); | 1657 | phy_stop(pdata->phydev); |
1658 | if (gpio_is_valid(pdata->phy_reset_gpio)) { | 1658 | if ((gpio_is_valid(pdata->phy_reset_gpio) && |
1659 | (pdata->mac_ver > EQOS_MAC_CORE_4_10))) { | ||
1659 | gpio_set_value(pdata->phy_reset_gpio, 0); | 1660 | gpio_set_value(pdata->phy_reset_gpio, 0); |
1660 | usleep_range(pdata->phy_reset_duration, | 1661 | usleep_range(pdata->phy_reset_duration, |
1661 | pdata->phy_reset_duration + 1); | 1662 | pdata->phy_reset_duration + 1); |
1662 | } | 1663 | } |
1663 | } | 1664 | } |
1664 | } | 1665 | } |
@@ -1718,9 +1719,10 @@ static int eqos_resume_noirq(struct device *dev) | |||
1718 | } | 1719 | } |
1719 | eqos_start_dev(pdata); | 1720 | eqos_start_dev(pdata); |
1720 | } else { | 1721 | } else { |
1721 | if (gpio_is_valid(pdata->phy_reset_gpio) && | 1722 | if (gpio_is_valid(pdata->phy_reset_gpio)) { |
1722 | !gpio_get_value(pdata->phy_reset_gpio)) { | 1723 | /* reset Broadcom PHY needs minimum of 2us delay */ |
1723 | /* deassert phy reset */ | 1724 | gpio_set_value(pdata->phy_reset_gpio, 0); |
1725 | usleep_range(10, 11); | ||
1724 | gpio_set_value(pdata->phy_reset_gpio, 1); | 1726 | gpio_set_value(pdata->phy_reset_gpio, 1); |
1725 | msleep(pdata->phy_reset_post_delay); | 1727 | msleep(pdata->phy_reset_post_delay); |
1726 | } | 1728 | } |