static int rt2870_suspend( struct usb_interface *intf, pm_message_t state) { struct net_device *net_dev; VOID *pAd = usb_get_intfdata(intf); #if (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) UCHAR Flag; RTMP_DRIVER_ADAPTER_RT28XX_WOW_STATUS(pAd, &Flag); #endif /* (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) */ DBGPRINT(RT_DEBUG_TRACE, ("===> rt2870_suspend()\n")); #ifdef USB_SUPPORT_SELECTIVE_SUSPEND UCHAR Flag; DBGPRINT(RT_DEBUG_ERROR, ("autosuspend===> rt2870_suspend()\n")); #if (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) if (Flag == FALSE) #endif /* (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) */ { /* if(!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_IDLE_RADIO_OFF)) */ RTMP_DRIVER_ADAPTER_END_DISSASSOCIATE(pAd); RTMP_DRIVER_ADAPTER_IDLE_RADIO_OFF_TEST(pAd, &Flag); if(!Flag) { /*RT28xxUsbAsicRadioOff(pAd); */ RTMP_DRIVER_ADAPTER_RT28XX_USB_ASICRADIO_OFF(pAd); } } /*RTMP_SET_FLAG(pAd, fRTMP_ADAPTER_SUSPEND); */ RTMP_DRIVER_ADAPTER_SUSPEND_SET(pAd); return 0; #endif /* USB_SUPPORT_SELECTIVE_SUSPEND */ #ifdef CONFIG_STA_SUPPORT //RTMP_DRIVER_ADAPTER_END_DISSASSOCIATE(pAd); #endif #if (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) if (Flag == TRUE) RTMP_DRIVER_ADAPTER_RT28XX_WOW_ENABLE(pAd); else #endif /* (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) */ { RTMP_DRIVER_ADAPTER_RT28XX_USB_ASICRADIO_OFF(pAd); RTMP_DRIVER_ADAPTER_SUSPEND_SET(pAd); } DBGPRINT(RT_DEBUG_TRACE, ("<=== rt2870_suspend()\n")); return 0; }
static int rtusb_suspend(struct usb_interface *intf, pm_message_t state) { struct net_device *net_dev; VOID *pAd = usb_get_intfdata(intf); #ifdef USB_SUPPORT_SELECTIVE_SUSPEND UCHAR Flag; #endif #if (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) UCHAR WOWEable; #endif DBGPRINT(RT_DEBUG_TRACE, ("===> rtusb_suspend()\n")); if (!RTMP_TEST_FLAG((PRTMP_ADAPTER)pAd, fRTMP_ADAPTER_START_UP)) return 0; #ifdef USB_SUPPORT_SELECTIVE_SUSPEND DBGPRINT(RT_DEBUG_ERROR, ("%s():=>autosuspend\n", __func__)); RTMP_DRIVER_ADAPTER_RT28XX_CMD_RADIO_OFF(pAd); return 0; #endif /* USB_SUPPORT_SELECTIVE_SUSPEND */ #ifdef RESUME_WITH_USB_RESET_SUPPORT last_pm_cnt = os_get_sync_anchor(); #endif /* RESUME_WITH_USB_RESET_SUPPORT */ #if (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) RTMP_DRIVER_ADAPTER_RT28XX_WOW_READY(pAd, &WOWEable); if (WOWEable) RTMP_DRIVER_ADAPTER_RT28XX_WOW_ENABLE(pAd); else #endif /* (defined(WOW_SUPPORT) && defined(RTMP_MAC_USB)) || defined(NEW_WOW_SUPPORT) */ { DBGPRINT(RT_DEBUG_ERROR, ("%s :radio_off \n", __func__)); RTMP_DRIVER_ADAPTER_RT28XX_CMD_RADIO_OFF(pAd); RTMP_DRIVER_NET_DEV_GET(pAd, &net_dev); netif_device_detach(net_dev); } RTMP_DRIVER_USB_SUSPEND(pAd, netif_running(net_dev)); DBGPRINT(RT_DEBUG_TRACE, ("<=%s()\n", __func__)); return 0; }