summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorSushil Singh <sushilkumars@nvidia.com>2020-06-01 07:11:15 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2020-11-12 06:39:33 -0500
commitf6ab6c0b03c834a87382fad5d295cc3f6c52dacf (patch)
tree2ad8e0ad530d89b72d0d32ddeead7af03aaa6f7d /drivers/net
parent3447f4450f38805a6003c25b06789ee0202943f8 (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.c5
-rw-r--r--drivers/net/ethernet/nvidia/eqos/init.c12
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 }