r8152: add reset_resume function
When the reset_resume() is called, the flag of SELECTIVE_SUSPEND should be cleared and reinitialize the device, whether the SELECTIVE_SUSPEND is set or not. If reset_resume() is called, it means the power supply is cut or the device is reset. That is, the device wouldn't be in runtime suspend state and the reinitialization is necessary. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
55285bf094
commit
7ec2541aa7
|
@ -3525,6 +3525,14 @@ static int rtl8152_resume(struct usb_interface *intf)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int rtl8152_reset_resume(struct usb_interface *intf)
|
||||
{
|
||||
struct r8152 *tp = usb_get_intfdata(intf);
|
||||
|
||||
clear_bit(SELECTIVE_SUSPEND, &tp->flags);
|
||||
return rtl8152_resume(intf);
|
||||
}
|
||||
|
||||
static void rtl8152_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
|
||||
{
|
||||
struct r8152 *tp = netdev_priv(dev);
|
||||
|
@ -4276,7 +4284,7 @@ static struct usb_driver rtl8152_driver = {
|
|||
.disconnect = rtl8152_disconnect,
|
||||
.suspend = rtl8152_suspend,
|
||||
.resume = rtl8152_resume,
|
||||
.reset_resume = rtl8152_resume,
|
||||
.reset_resume = rtl8152_reset_resume,
|
||||
.pre_reset = rtl8152_pre_reset,
|
||||
.post_reset = rtl8152_post_reset,
|
||||
.supports_autosuspend = 1,
|
||||
|
|
Loading…
Reference in New Issue