@ -392,7 +392,7 @@ bool stmmac_eee_init(struct stmmac_priv *priv)
* changed ) .
* In that case the driver disable own timers .
*/
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
if ( priv - > eee_active ) {
netdev_dbg ( priv - > dev , " disable EEE \n " ) ;
del_timer_sync ( & priv - > eee_ctrl_timer ) ;
@ -400,11 +400,11 @@ bool stmmac_eee_init(struct stmmac_priv *priv)
tx_lpi_timer ) ;
}
priv - > eee_active = 0 ;
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
goto out ;
}
/* Activate the EEE and start timers */
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
if ( ! priv - > eee_active ) {
priv - > eee_active = 1 ;
setup_timer ( & priv - > eee_ctrl_timer ,
@ -421,7 +421,7 @@ bool stmmac_eee_init(struct stmmac_priv *priv)
priv - > hw - > mac - > set_eee_pls ( priv - > hw , ndev - > phydev - > link ) ;
ret = true ;
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
netdev_dbg ( priv - > dev , " Energy-Efficient Ethernet initialized \n " ) ;
}
@ -805,7 +805,7 @@ static void stmmac_adjust_link(struct net_device *dev)
if ( ! phydev )
return ;
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
if ( phydev - > link ) {
u32 ctrl = readl ( priv - > ioaddr + MAC_CTRL_REG ) ;
@ -864,7 +864,7 @@ static void stmmac_adjust_link(struct net_device *dev)
if ( new_state & & netif_msg_link ( priv ) )
phy_print_status ( phydev ) ;
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
if ( phydev - > is_pseudo_fixed_link )
/* Stop PHY layer to call the hook to adjust the link in case
@ -4268,7 +4268,7 @@ int stmmac_dvr_probe(struct device *device,
( 8 * priv - > plat - > rx_queues_to_use ) ) ;
}
spin_lock _init( & priv - > lock ) ;
mutex _init( & priv - > lock ) ;
/* If a specific clk_csr value is passed from the platform
* this means that the CSR Clock Range selection cannot be
@ -4359,6 +4359,7 @@ int stmmac_dvr_remove(struct device *dev)
priv - > hw - > pcs ! = STMMAC_PCS_TBI & &
priv - > hw - > pcs ! = STMMAC_PCS_RTBI )
stmmac_mdio_unregister ( ndev ) ;
mutex_destroy ( & priv - > lock ) ;
free_netdev ( ndev ) ;
return 0 ;
@ -4384,7 +4385,7 @@ int stmmac_suspend(struct device *dev)
if ( ndev - > phydev )
phy_stop ( ndev - > phydev ) ;
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
netif_device_detach ( ndev ) ;
stmmac_stop_all_queues ( priv ) ;
@ -4405,7 +4406,7 @@ int stmmac_suspend(struct device *dev)
clk_disable ( priv - > plat - > pclk ) ;
clk_disable ( priv - > plat - > stmmac_clk ) ;
}
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
priv - > oldlink = false ;
priv - > speed = SPEED_UNKNOWN ;
@ -4461,9 +4462,9 @@ int stmmac_resume(struct device *dev)
* from another devices ( e . g . serial console ) .
*/
if ( device_may_wakeup ( priv - > device ) ) {
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
priv - > hw - > mac - > pmt ( priv - > hw , 0 ) ;
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
priv - > irq_wake = 0 ;
} else {
pinctrl_pm_select_default_state ( priv - > device ) ;
@ -4477,7 +4478,7 @@ int stmmac_resume(struct device *dev)
netif_device_attach ( ndev ) ;
spin_lock_irqsave ( & priv - > lock , flags ) ;
mutex_lock ( & priv - > lock ) ;
stmmac_reset_queues_param ( priv ) ;
@ -4496,7 +4497,7 @@ int stmmac_resume(struct device *dev)
stmmac_start_all_queues ( priv ) ;
spin_unlock_irqrestore ( & priv - > lock , flags ) ;
mutex_unlock ( & priv - > lock ) ;
if ( ndev - > phydev )
phy_start ( ndev - > phydev ) ;