@ -1464,6 +1464,8 @@ err_out:
static void qcom_ethqos_phy_suspend_clks ( struct qcom_ethqos * ethqos )
{
struct stmmac_priv * priv = qcom_ethqos_get_priv ( ethqos ) ;
ETHQOSINFO ( " Enter \n " ) ;
if ( phy_intr_en )
@ -1473,6 +1475,18 @@ static void qcom_ethqos_phy_suspend_clks(struct qcom_ethqos *ethqos)
ethqos_update_rgmii_clk_and_bus_cfg ( ethqos , 0 ) ;
if ( priv - > plat - > stmmac_clk )
clk_disable_unprepare ( priv - > plat - > stmmac_clk ) ;
if ( priv - > plat - > pclk )
clk_disable_unprepare ( priv - > plat - > pclk ) ;
if ( priv - > plat - > clk_ptp_ref )
clk_disable_unprepare ( priv - > plat - > clk_ptp_ref ) ;
if ( ethqos - > rgmii_clk )
clk_disable_unprepare ( ethqos - > rgmii_clk ) ;
ETHQOSINFO ( " Exit \n " ) ;
}
@ -1498,8 +1512,22 @@ inline bool qcom_ethqos_is_phy_link_up(struct qcom_ethqos *ethqos)
static void qcom_ethqos_phy_resume_clks ( struct qcom_ethqos * ethqos )
{
struct stmmac_priv * priv = qcom_ethqos_get_priv ( ethqos ) ;
ETHQOSINFO ( " Enter \n " ) ;
if ( priv - > plat - > stmmac_clk )
clk_prepare_enable ( priv - > plat - > stmmac_clk ) ;
if ( priv - > plat - > pclk )
clk_prepare_enable ( priv - > plat - > pclk ) ;
if ( priv - > plat - > clk_ptp_ref )
clk_prepare_enable ( priv - > plat - > clk_ptp_ref ) ;
if ( ethqos - > rgmii_clk )
clk_prepare_enable ( ethqos - > rgmii_clk ) ;
if ( qcom_ethqos_is_phy_link_up ( ethqos ) )
ethqos_update_rgmii_clk_and_bus_cfg ( ethqos , ethqos - > speed ) ;
else