func: static s32 brcmf_cfg80211_suspend(struct wiphy struct cfg80211_wowlan *wowl) struct brcmf_cfg80211_info * cfg = wiphy_to_cfg ( wiphy ) ; struct net_device * ndev = cfg_to_ndev ( cfg ) ; struct brcmf_if * ifp = netdev_priv ( ndev ) ; if ( ! check_vif_up ( ifp -> vif ) )  static bool check_vif_up(struct brcmf_cfg80211_vif *vif) if ( ! test_bit ( BRCMF_VIF_STATUS_READY , & vif -> sme_state ) )  return false ; return true ; if ( test_bit ( BRCMF_SCAN_STATUS_BUSY , & cfg -> scan_status ) )  brcmf_abort_scanning ( cfg ); void brcmf_abort_scanning(struct brcmf_cfg80211_info *cfg) struct escan_info * escan = & cfg -> escan_info ; if ( cfg -> scan_request )  escan -> escan_state = WL_ESCAN_STATE_IDLE; brcmf_notify_escan_complete ( cfg , escan -> ifp , true , true ); s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info struct brcmf_if *ifp, bool bool fw_abort) struct brcmf_scan_params_le params_le ; if ( fw_abort )  memset ( & params_le , 0 , sizeof ( params_le ) ); eth_broadcast_addr ( params_le . bssid ); params_le . bss_type = DOT11_BSSTYPE_ANY; params_le . scan_type = 0; params_le . channel_num = cpu_to_le32 ( 1 ); params_le . nprobes = cpu_to_le32 ( 1 ); params_le . active_time = cpu_to_le32 ( - 1 ); params_le . passive_time = cpu_to_le32 ( - 1 ); params_le . home_time = cpu_to_le32 ( - 1 ); params_le . channel_list [ 0 ] = cpu_to_le16 ( - 1 ); err = brcmf_fil_cmd_data_set ( ifp , BRCMF_C_SCAN , & params_le , sizeof ( params_le ) ); if ( err )  return err ; 