Message ID | 1393322309-10390-1-git-send-email-peppe.cavallaro@st.com |
---|---|
State | Superseded, archived |
Delegated to: | David Miller |
Headers | show |
Hello. On 25-02-2014 13:58, Giuseppe Cavallaro wrote: > This patch is to disable the EEE (so HW and timers) > for example when the phy communicates that the EEE > can be supported anymore. > Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> > --- > drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 24 ++++++++++++++++---- > 1 files changed, 19 insertions(+), 5 deletions(-) > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > index 078ad0e..dc89dc3 100644 > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c [...] > @@ -2204,7 +2219,6 @@ static int stmmac_poll(struct napi_struct *napi, int budget) > static void stmmac_tx_timeout(struct net_device *dev) > { > struct stmmac_priv *priv = netdev_priv(dev); > - Why? Empty line is needed here, after declaration. > /* Clear Tx resources and restart transmitting again */ > stmmac_tx_err(priv); > } WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2/25/2014 5:29 PM, Sergei Shtylyov wrote: > Hello. > > On 25-02-2014 13:58, Giuseppe Cavallaro wrote: > >> This patch is to disable the EEE (so HW and timers) >> for example when the phy communicates that the EEE >> can be supported anymore. > >> Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> >> --- >> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 24 >> ++++++++++++++++---- >> 1 files changed, 19 insertions(+), 5 deletions(-) > >> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c >> b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c >> index 078ad0e..dc89dc3 100644 >> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c >> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c > [...] >> @@ -2204,7 +2219,6 @@ static int stmmac_poll(struct napi_struct *napi, >> int budget) >> static void stmmac_tx_timeout(struct net_device *dev) >> { >> struct stmmac_priv *priv = netdev_priv(dev); >> - > > Why? Empty line is needed here, after declaration. yes out-of-scope in this patch. I'll fix it and resend all BR Peppe > >> /* Clear Tx resources and restart transmitting again */ >> stmmac_tx_err(priv); >> } > > WBR, Sergei > > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 078ad0e..dc89dc3 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -286,10 +286,25 @@ bool stmmac_eee_init(struct stmmac_priv *priv) /* MAC core supports the EEE feature. */ if (priv->dma_cap.eee) { + int tx_lpi_timer = priv->tx_lpi_timer; + /* Check if the PHY supports EEE */ - if (phy_init_eee(priv->phydev, 1)) + if (phy_init_eee(priv->phydev, 1)) { + /* To manage at run-time if the EEE cannot be supported + * anymore (for example because the lp caps have been + * changed). + * In that case the driver disable own timers. + */ + if (priv->eee_active) { + pr_debug("stmmac: disable EEE\n"); + del_timer_sync(&priv->eee_ctrl_timer); + priv->hw->mac->set_eee_timer(priv->ioaddr, 0, + tx_lpi_timer); + } + priv->eee_active = 0; goto out; - + } + /* Activate the EEE and start timers */ if (!priv->eee_active) { priv->eee_active = 1; init_timer(&priv->eee_ctrl_timer); @@ -300,13 +315,13 @@ bool stmmac_eee_init(struct stmmac_priv *priv) priv->hw->mac->set_eee_timer(priv->ioaddr, STMMAC_DEFAULT_LIT_LS, - priv->tx_lpi_timer); + tx_lpi_timer); } else /* Set HW EEE according to the speed */ priv->hw->mac->set_eee_pls(priv->ioaddr, priv->phydev->link); - pr_info("stmmac: Energy-Efficient Ethernet initialized\n"); + pr_debug("stmmac: Energy-Efficient Ethernet initialized\n"); ret = true; } @@ -2204,7 +2219,6 @@ static int stmmac_poll(struct napi_struct *napi, int budget) static void stmmac_tx_timeout(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); - /* Clear Tx resources and restart transmitting again */ stmmac_tx_err(priv); }
This patch is to disable the EEE (so HW and timers) for example when the phy communicates that the EEE can be supported anymore. Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 24 ++++++++++++++++---- 1 files changed, 19 insertions(+), 5 deletions(-)