File tree Expand file tree Collapse file tree 1 file changed +26
-4
lines changed
drivers/net/ethernet/broadcom Expand file tree Collapse file tree 1 file changed +26
-4
lines changed Original file line number Diff line number Diff line change @@ -4019,7 +4019,7 @@ static int tg3_power_up(struct tg3 *tp)
4019
4019
4020
4020
static int tg3_setup_phy (struct tg3 * , bool );
4021
4021
4022
- static void tg3_power_down_prepare (struct tg3 * tp )
4022
+ static int tg3_power_down_prepare (struct tg3 * tp )
4023
4023
{
4024
4024
u32 misc_host_ctrl ;
4025
4025
bool device_should_wake , do_low_power ;
@@ -4263,7 +4263,7 @@ static void tg3_power_down_prepare(struct tg3 *tp)
4263
4263
4264
4264
tg3_ape_driver_state_change (tp , RESET_KIND_SHUTDOWN );
4265
4265
4266
- return ;
4266
+ return 0 ;
4267
4267
}
4268
4268
4269
4269
static void tg3_power_down (struct tg3 * tp )
@@ -18084,6 +18084,7 @@ static int tg3_suspend(struct device *device)
18084
18084
{
18085
18085
struct net_device * dev = dev_get_drvdata (device );
18086
18086
struct tg3 * tp = netdev_priv (dev );
18087
+ int err = 0 ;
18087
18088
18088
18089
rtnl_lock ();
18089
18090
@@ -18107,11 +18108,32 @@ static int tg3_suspend(struct device *device)
18107
18108
tg3_flag_clear (tp , INIT_COMPLETE );
18108
18109
tg3_full_unlock (tp );
18109
18110
18110
- tg3_power_down_prepare (tp );
18111
+ err = tg3_power_down_prepare (tp );
18112
+ if (err ) {
18113
+ int err2 ;
18114
+
18115
+ tg3_full_lock (tp , 0 );
18116
+
18117
+ tg3_flag_set (tp , INIT_COMPLETE );
18118
+ err2 = tg3_restart_hw (tp , true);
18119
+ if (err2 )
18120
+ goto out ;
18121
+
18122
+ tg3_timer_start (tp );
18123
+
18124
+ netif_device_attach (dev );
18125
+ tg3_netif_start (tp );
18126
+
18127
+ out :
18128
+ tg3_full_unlock (tp );
18129
+
18130
+ if (!err2 )
18131
+ tg3_phy_start (tp );
18132
+ }
18111
18133
18112
18134
unlock :
18113
18135
rtnl_unlock ();
18114
- return 0 ;
18136
+ return err ;
18115
18137
}
18116
18138
18117
18139
static int tg3_resume (struct device * device )
You can’t perform that action at this time.
0 commit comments