]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
net: phy: broadcom: fix eqos resume time
authorBhadram Varka <vbhadram@nvidia.com>
Wed, 25 Jan 2017 06:37:46 +0000 (12:07 +0530)
committermobile promotions <svcmobile_promotions@nvidia.com>
Tue, 31 Jan 2017 09:05:34 +0000 (01:05 -0800)
BRCM PHY reset happens through phy-reset-gpio, so no need of
performing soft reset through genphy_soft_reset() which actually
takes minimum 50msec to perform the operation.

Also removes the build warning since added low_power_mode
function pointer is void but the function defined as int.

Bug 200216733

Change-Id: Icc38a5db4db96a6a6551901e3de435fffc2d0382
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: http://git-master/r/1293778
GVS: Gerrit_Virtual_Submit
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com>
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: David Lim <dlim@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
drivers/net/phy/broadcom.c

index 0867f76f10c54fd5fb31568c41f4f7c7d059d8e3..f15092142d0538bb5556c1f32ebd89c62956089d 100644 (file)
@@ -443,24 +443,23 @@ void bcm_phy_ultra_low_power(struct phy_device *phydev)
        phydev->dev_flags |= BCM_IDDQ_EN;
 }
 
-static int bcm54xx_low_power_mode(struct phy_device *phydev,
-                        bool lp_mode_en)
+static void bcm54xx_low_power_mode(struct phy_device *phydev,
+                                  bool lp_mode_en)
 {
        if (lp_mode_en) {
                if (phydev->dev_flags & BCM_IDDQ_EN) {
                        pr_debug("%s(): bcm-phy already in iddq-lp mode\n",
                                 __func__);
-                       return 0;
+                       return;
                }
                pr_info("%s(): put phy in iddq-lp mode\n", __func__);
                bcm_phy_ultra_low_power(phydev);
        } else {
                pr_debug("%s(): re-initialze phy after exiting "
                                        "from iddq-lp mode\n", __func__);
-               phy_init_hw(phydev);
+               phydev->drv->config_init(phydev);
                phydev->dev_flags &= ~BCM_IDDQ_EN;
        }
-       return 0;
 }
 
 static int bcm54xx_config_init(struct phy_device *phydev)