Lines Matching full:cfg

69 static s32 wl_cfgp2p_cancel_listen(struct bcm_cfg80211 *cfg, struct net_device *ndev,
331 wl_cfgp2p_init_priv(struct bcm_cfg80211 *cfg) in wl_cfgp2p_init_priv() argument
334 cfg->p2p = MALLOCZ(cfg->osh, sizeof(struct p2p_info)); in wl_cfgp2p_init_priv()
335 if (cfg->p2p == NULL) { in wl_cfgp2p_init_priv()
340 get_primary_mac(cfg, &primary_mac); in wl_cfgp2p_init_priv()
341 wl_cfgp2p_generate_bss_mac(cfg, &primary_mac); in wl_cfgp2p_init_priv()
343 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_PRIMARY) = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_init_priv()
344 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_PRIMARY) = 0; in wl_cfgp2p_init_priv()
345 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE) = NULL; in wl_cfgp2p_init_priv()
346 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) = 0; in wl_cfgp2p_init_priv()
347 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_CONNECTION1) = NULL; in wl_cfgp2p_init_priv()
348 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION1) = -1; in wl_cfgp2p_init_priv()
349 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_CONNECTION2) = NULL; in wl_cfgp2p_init_priv()
350 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION2) = -1; in wl_cfgp2p_init_priv()
359 wl_cfgp2p_deinit_priv(struct bcm_cfg80211 *cfg) in wl_cfgp2p_deinit_priv() argument
362 if (cfg->p2p) { in wl_cfgp2p_deinit_priv()
363 MFREE(cfg->osh, cfg->p2p, sizeof(struct p2p_info)); in wl_cfgp2p_deinit_priv()
364 cfg->p2p = NULL; in wl_cfgp2p_deinit_priv()
366 cfg->p2p_supported = 0; in wl_cfgp2p_deinit_priv()
372 wl_cfgp2p_set_firm_p2p(struct bcm_cfg80211 *cfg) in wl_cfgp2p_set_firm_p2p() argument
374 struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_set_firm_p2p()
377 struct ether_addr *p2p_dev_addr = wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_set_firm_p2p()
417 sizeof(*p2p_dev_addr), cfg->ioctl_buf, WLC_IOCTL_MAXLEN, 0, &cfg->ioctl_buf_sync); in wl_cfgp2p_set_firm_p2p()
424 int wl_cfg_multip2p_operational(struct bcm_cfg80211 *cfg) in wl_cfg_multip2p_operational() argument
426 if (!cfg->p2p) { in wl_cfg_multip2p_operational()
431 if ((wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION1) != -1) && in wl_cfg_multip2p_operational()
432 (wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION2) != -1)) in wl_cfg_multip2p_operational()
446 wl_cfgp2p_ifadd(struct bcm_cfg80211 *cfg, struct ether_addr *mac, u8 if_type, in wl_cfgp2p_ifadd() argument
451 struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_ifadd()
457 CFGP2P_ERR(("---cfg p2p_ifadd "MACDBG" %s %u\n", in wl_cfgp2p_ifadd()
463 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_ifadd()
465 CFGP2P_ERR(("'cfg p2p_ifadd' error %d\n", err)); in wl_cfgp2p_ifadd()
478 wl_cfgp2p_ifdisable(struct bcm_cfg80211 *cfg, struct ether_addr *mac) in wl_cfgp2p_ifdisable() argument
481 struct net_device *netdev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_ifdisable()
483 CFGP2P_INFO(("------ cfg p2p_ifdis "MACDBG" dev->ifindex:%d \n", in wl_cfgp2p_ifdisable()
486 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_ifdisable()
488 CFGP2P_ERR(("'cfg p2p_ifdis' error %d\n", ret)); in wl_cfgp2p_ifdisable()
499 wl_cfgp2p_ifdel(struct bcm_cfg80211 *cfg, struct ether_addr *mac) in wl_cfgp2p_ifdel() argument
502 struct net_device *netdev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_ifdel()
504 CFGP2P_ERR(("------ cfg p2p_ifdel "MACDBG" dev->ifindex:%d\n", in wl_cfgp2p_ifdel()
507 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_ifdel()
509 CFGP2P_ERR(("'cfg p2p_ifdel' error %d\n", ret)); in wl_cfgp2p_ifdel()
521 wl_cfgp2p_ifchange(struct bcm_cfg80211 *cfg, struct ether_addr *mac, u8 if_type, in wl_cfgp2p_ifchange() argument
527 struct net_device *netdev = wl_to_p2p_bss_ndev(cfg, conn_idx); in wl_cfgp2p_ifchange()
533 CFGP2P_INFO(("---cfg p2p_ifchange "MACDBG" %s %u" in wl_cfgp2p_ifchange()
540 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_ifchange()
542 CFGP2P_ERR(("'cfg p2p_ifupd' error %d\n", err)); in wl_cfgp2p_ifchange()
544 cfg->p2p->p2p_go_count++; in wl_cfgp2p_ifchange()
556 wl_cfgp2p_ifidx(struct bcm_cfg80211 *cfg, struct ether_addr *mac, s32 *index) in wl_cfgp2p_ifidx() argument
560 struct net_device *dev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_ifidx()
562 CFGP2P_INFO(("---cfg p2p_if "MACDBG"\n", MAC2STRDBG(mac->octet))); in wl_cfgp2p_ifidx()
565 sizeof(getbuf), wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_PRIMARY), NULL); in wl_cfgp2p_ifidx()
569 CFGP2P_DBG(("---cfg p2p_if ==> %d\n", *index)); in wl_cfgp2p_ifidx()
576 wl_cfgp2p_set_discovery(struct bcm_cfg80211 *cfg, s32 on) in wl_cfgp2p_set_discovery() argument
579 struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_set_discovery()
601 wl_cfgp2p_set_p2p_mode(struct bcm_cfg80211 *cfg, u8 mode, u32 channel, u16 listen_ms, int bssidx) in wl_cfgp2p_set_p2p_mode() argument
613 dev = wl_cfgp2p_find_ndev(cfg, bssidx); in wl_cfgp2p_set_p2p_mode()
621 channel, cfg->channel)); in wl_cfgp2p_set_p2p_mode()
622 if ((mode == WL_P2P_DISC_ST_LISTEN) && (cfg->channel == channel)) { in wl_cfgp2p_set_p2p_mode()
623 struct net_device *primary_ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_set_p2p_mode()
625 if (cfg->p2p_resp_apchn_status) { in wl_cfgp2p_set_p2p_mode()
630 if (wl_get_drv_status(cfg, CONNECTED, primary_ndev)) { in wl_cfgp2p_set_p2p_mode()
632 cfg->p2p_resp_apchn_status = true; in wl_cfgp2p_set_p2p_mode()
644 sizeof(discovery_mode), cfg->ioctl_buf, WLC_IOCTL_MAXLEN, in wl_cfgp2p_set_p2p_mode()
645 bssidx, &cfg->ioctl_buf_sync); in wl_cfgp2p_set_p2p_mode()
652 wl_cfgp2p_get_disc_idx(struct bcm_cfg80211 *cfg, s32 *index) in wl_cfgp2p_get_disc_idx() argument
655 struct net_device *dev = wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_PRIMARY); in wl_cfgp2p_get_disc_idx()
667 int wl_cfgp2p_get_conn_idx(struct bcm_cfg80211 *cfg) in wl_cfgp2p_get_conn_idx() argument
672 dhd_pub_t *dhd = (dhd_pub_t *)(cfg->pub); in wl_cfgp2p_get_conn_idx()
677 if (wl_to_p2p_bss_bssidx(cfg, i) == -1) { in wl_cfgp2p_get_conn_idx()
685 if ((connected_cnt = wl_get_drv_status_all(cfg, CONNECTED)) > 1) { in wl_cfgp2p_get_conn_idx()
698 wl_cfgp2p_init_discovery(struct bcm_cfg80211 *cfg) in wl_cfgp2p_init_discovery() argument
703 struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_init_discovery()
709 if (wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) > 0 && !cfg->bus_resuming) in wl_cfgp2p_init_discovery()
711 if (wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) > 0) in wl_cfgp2p_init_discovery()
718 ret = wl_cfgp2p_set_discovery(cfg, 1); in wl_cfgp2p_init_discovery()
724 ret = wl_cfgp2p_get_disc_idx(cfg, &bssidx); in wl_cfgp2p_init_discovery()
730 if (!cfg->p2p_wdev) { in wl_cfgp2p_init_discovery()
741 if (!cfg->bus_resuming) in wl_cfgp2p_init_discovery()
743 ret = wl_alloc_netinfo(cfg, NULL, cfg->p2p_wdev, WL_IF_TYPE_STA, 0, bssidx, 0); in wl_cfgp2p_init_discovery()
747 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE) = in wl_cfgp2p_init_discovery()
748 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_PRIMARY); in wl_cfgp2p_init_discovery()
749 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) = bssidx; in wl_cfgp2p_init_discovery()
752 ret = wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, in wl_cfgp2p_init_discovery()
753 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_init_discovery()
757 wl_cfgp2p_set_discovery(cfg, 0); in wl_cfgp2p_init_discovery()
758 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) = 0; in wl_cfgp2p_init_discovery()
759 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE) = NULL; in wl_cfgp2p_init_discovery()
765 wl_cfg80211_clear_p2p_disc_ies(cfg); in wl_cfgp2p_init_discovery()
775 * @cfg : wl_private data
779 wl_cfgp2p_deinit_discovery(struct bcm_cfg80211 *cfg) in wl_cfgp2p_deinit_discovery() argument
785 bssidx = wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_deinit_discovery()
792 wl_cfg80211_clear_p2p_disc_ies(cfg); in wl_cfgp2p_deinit_discovery()
795 wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, in wl_cfgp2p_deinit_discovery()
798 ret = wl_cfgp2p_set_discovery(cfg, 0); in wl_cfgp2p_deinit_discovery()
801 wl_dealloc_netinfo_by_wdev(cfg, cfg->p2p_wdev); in wl_cfgp2p_deinit_discovery()
803 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE) = WL_INVALID; in wl_cfgp2p_deinit_discovery()
804 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE) = NULL; in wl_cfgp2p_deinit_discovery()
811 * @cfg : wl_private data
817 wl_cfgp2p_enable_discovery(struct bcm_cfg80211 *cfg, struct net_device *dev, in wl_cfgp2p_enable_discovery() argument
825 mutex_lock(&cfg->if_sync); in wl_cfgp2p_enable_discovery()
827 if ((ret = wl_cfg80211_handle_if_role_conflict(cfg, WL_IF_TYPE_P2P_DISC)) != BCME_OK) { in wl_cfgp2p_enable_discovery()
834 if (!cfg->bus_resuming && (wl_get_p2p_status(cfg, DISCOVERY_ON))) in wl_cfgp2p_enable_discovery()
836 if (wl_get_p2p_status(cfg, DISCOVERY_ON)) in wl_cfgp2p_enable_discovery()
843 ret = wl_cfgp2p_init_discovery(cfg); in wl_cfgp2p_enable_discovery()
849 wl_set_p2p_status(cfg, DISCOVERY_ON); in wl_cfgp2p_enable_discovery()
854 ret = wldev_iovar_setint_bsscfg(wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE), in wl_cfgp2p_enable_discovery()
855 "wsec", AES_ENABLED, wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_enable_discovery()
863 if (bcmcfg_to_prmry_ndev(cfg) == dev) { in wl_cfgp2p_enable_discovery()
864 bssidx = wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_enable_discovery()
865 } else if ((bssidx = wl_get_bssidx_by_wdev(cfg, cfg->p2p_wdev)) < 0) { in wl_cfgp2p_enable_discovery()
866 WL_ERR(("Find p2p index from wdev(%p) failed\n", cfg->p2p_wdev)); in wl_cfgp2p_enable_discovery()
873 cfgdev = cfg->p2p_wdev; in wl_cfgp2p_enable_discovery()
878 ret = wl_cfg80211_set_mgmt_vndr_ies(cfg, cfgdev, in wl_cfgp2p_enable_discovery()
888 if (wl_cfgp2p_disable_discovery(cfg) != BCME_OK) { in wl_cfgp2p_enable_discovery()
896 mutex_unlock(&cfg->if_sync); in wl_cfgp2p_enable_discovery()
902 * @cfg : wl_private_data
906 wl_cfgp2p_disable_discovery(struct bcm_cfg80211 *cfg) in wl_cfgp2p_disable_discovery() argument
912 wl_clr_p2p_status(cfg, DISCOVERY_ON); in wl_cfgp2p_disable_discovery()
914 if (!cfg->p2p) { // terence 20130113: Fix for p2p NULL pointer in wl_cfgp2p_disable_discovery()
922 __FUNCTION__, (cfg)->p2p->bss[P2PAPI_BSSCFG_DEVICE].bssidx)); in wl_cfgp2p_disable_discovery()
924 bssidx = wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_disable_discovery()
930 ret = wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, bssidx); in wl_cfgp2p_disable_discovery()
938 if (wl_get_p2p_status(cfg, SCANNING)) { in wl_cfgp2p_disable_discovery()
942 wl_clr_p2p_status(cfg, DISCOVERY_ON); in wl_cfgp2p_disable_discovery()
943 ret = wl_cfgp2p_deinit_discovery(cfg); in wl_cfgp2p_disable_discovery()
957 wl_cfgp2p_escan(struct bcm_cfg80211 *cfg, struct net_device *dev, u16 active_scan, in wl_cfgp2p_escan() argument
978 pri_dev = wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_PRIMARY); in wl_cfgp2p_escan()
980 if (cfg->scan_params_v2) { in wl_cfgp2p_escan()
998 bzero(cfg->ioctl_buf, WLC_IOCTL_MAXLEN); in wl_cfgp2p_escan()
1004 wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SEARCH, 0, 0, bssidx); in wl_cfgp2p_escan()
1015 wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, bssidx); in wl_cfgp2p_escan()
1051 active_time = wl_get_drv_status_all(cfg, CONNECTED) ? in wl_cfgp2p_escan()
1068 wl_escan_set_sync_id(sync_id, cfg); in wl_cfgp2p_escan()
1070 if (cfg->scan_params_v2) { in wl_cfgp2p_escan()
1118 wl_escan_set_type(cfg, WL_SCANTYPE_P2P); in wl_cfgp2p_escan()
1130 memblk, memsize, cfg->ioctl_buf, WLC_IOCTL_MAXLEN, bssidx, &cfg->ioctl_buf_sync); in wl_cfgp2p_escan()
1132 wl_set_p2p_status(cfg, SCANNING); in wl_cfgp2p_escan()
1139 * @cfg : wl_private data
1145 wl_cfgp2p_act_frm_search(struct bcm_cfg80211 *cfg, struct net_device *ndev, in wl_cfgp2p_act_frm_search() argument
1152 if (!p2p_is_on(cfg) || ndev == NULL || bssidx == WL_INVALID) in wl_cfgp2p_act_frm_search()
1155 if (bssidx == wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_PRIMARY)) in wl_cfgp2p_act_frm_search()
1156 bssidx = wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_act_frm_search()
1162 if (cfg->afx_hdl->pending_tx_act_frm && cfg->afx_hdl->is_active) { in wl_cfgp2p_act_frm_search()
1164 action_frame = &(cfg->afx_hdl->pending_tx_act_frm->action_frame); in wl_cfgp2p_act_frm_search()
1171 default_chan_list = (u16 *)MALLOCZ(cfg->osh, chan_cnt * sizeof(*default_chan_list)); in wl_cfgp2p_act_frm_search()
1191 ret = wl_cfgp2p_escan(cfg, ndev, true, chan_cnt, in wl_cfgp2p_act_frm_search()
1194 MFREE(cfg->osh, default_chan_list, chan_cnt * sizeof(*default_chan_list)); in wl_cfgp2p_act_frm_search()
1290 wl_cfgp2p_vndr_ie(struct bcm_cfg80211 *cfg, u8 *iebuf, s32 pktflag, in wl_cfgp2p_vndr_ie() argument
1348 wl_cfgp2p_find_ndev(struct bcm_cfg80211 *cfg, s32 bssidx) in wl_cfgp2p_find_ndev() argument
1358 if (bssidx == wl_to_p2p_bss_bssidx(cfg, i)) { in wl_cfgp2p_find_ndev()
1359 ndev = wl_to_p2p_bss_ndev(cfg, i); in wl_cfgp2p_find_ndev()
1372 * @cfg : wl_private data
1379 wl_cfgp2p_find_type(struct bcm_cfg80211 *cfg, s32 bssidx, s32 *type) in wl_cfgp2p_find_type() argument
1386 if (!cfg->p2p) { in wl_cfgp2p_find_type()
1391 if (bssidx == wl_to_p2p_bss_bssidx(cfg, i)) { in wl_cfgp2p_find_type()
1405 wl_cfgp2p_listen_complete(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev, in wl_cfgp2p_listen_complete() argument
1411 if (!cfg || !cfg->p2p || !cfgdev) in wl_cfgp2p_listen_complete()
1419 ndev = cfgdev_to_wlc_ndev(cfgdev, cfg); in wl_cfgp2p_listen_complete()
1422 if (wl_get_p2p_status(cfg, DISC_IN_PROGRESS)) { in wl_cfgp2p_listen_complete()
1423 wl_clr_p2p_status(cfg, DISC_IN_PROGRESS); in wl_cfgp2p_listen_complete()
1428 cfg80211_remain_on_channel_expired(cfgdev, cfg->last_roc_id, in wl_cfgp2p_listen_complete()
1429 &cfg->remain_on_chan, GFP_KERNEL); in wl_cfgp2p_listen_complete()
1435 cfg80211_remain_on_channel_expired(cfgdev, cfg->last_roc_id, in wl_cfgp2p_listen_complete()
1436 &cfg->remain_on_chan, cfg->remain_on_chan_type, GFP_KERNEL); in wl_cfgp2p_listen_complete()
1442 if (wl_get_p2p_status(cfg, LISTEN_EXPIRED) == 0) { in wl_cfgp2p_listen_complete()
1443 wl_set_p2p_status(cfg, LISTEN_EXPIRED); in wl_cfgp2p_listen_complete()
1444 if (timer_pending(&cfg->p2p->listen_timer)) { in wl_cfgp2p_listen_complete()
1445 del_timer_sync(&cfg->p2p->listen_timer); in wl_cfgp2p_listen_complete()
1448 if (cfg->afx_hdl->is_listen == TRUE && in wl_cfgp2p_listen_complete()
1449 wl_get_drv_status_all(cfg, FINDING_COMMON_CHANNEL)) { in wl_cfgp2p_listen_complete()
1451 complete(&cfg->act_frm_scan); in wl_cfgp2p_listen_complete()
1454 else if (wl_get_drv_status_all(cfg, WAITING_NEXT_ACT_FRM_LISTEN)) { in wl_cfgp2p_listen_complete()
1455 wl_clr_drv_status(cfg, WAITING_NEXT_ACT_FRM_LISTEN, ndev); in wl_cfgp2p_listen_complete()
1457 jiffies_to_msecs(jiffies - cfg->af_tx_sent_jiffies))); in wl_cfgp2p_listen_complete()
1459 if (wl_get_drv_status_all(cfg, WAITING_NEXT_ACT_FRM)) in wl_cfgp2p_listen_complete()
1460 wl_clr_drv_status(cfg, WAITING_NEXT_ACT_FRM, ndev); in wl_cfgp2p_listen_complete()
1462 complete(&cfg->wait_next_af); in wl_cfgp2p_listen_complete()
1467 if (wl_get_drv_status_all(cfg, REMAINING_ON_CHANNEL)) in wl_cfgp2p_listen_complete()
1469 if (wl_get_drv_status_all(cfg, REMAINING_ON_CHANNEL) || in wl_cfgp2p_listen_complete()
1470 wl_get_drv_status_all(cfg, FAKE_REMAINING_ON_CHANNEL)) in wl_cfgp2p_listen_complete()
1474 wl_clr_drv_status(cfg, REMAINING_ON_CHANNEL, ndev); in wl_cfgp2p_listen_complete()
1476 wl_clr_drv_status(cfg, FAKE_REMAINING_ON_CHANNEL, ndev); in wl_cfgp2p_listen_complete()
1481 bcmcfg_to_p2p_wdev(cfg)) { in wl_cfgp2p_listen_complete()
1487 cfg80211_remain_on_channel_expired(bcmcfg_to_p2p_wdev(cfg), in wl_cfgp2p_listen_complete()
1488 cfg->last_roc_id, &cfg->remain_on_chan, GFP_KERNEL); in wl_cfgp2p_listen_complete()
1495 cfg->last_roc_id, &cfg->remain_on_chan, in wl_cfgp2p_listen_complete()
1496 cfg->remain_on_chan_type, GFP_KERNEL); in wl_cfgp2p_listen_complete()
1500 if (wl_add_remove_eventmsg(bcmcfg_to_prmry_ndev(cfg), in wl_cfgp2p_listen_complete()
1505 wl_clr_p2p_status(cfg, LISTEN_EXPIRED); in wl_cfgp2p_listen_complete()
1520 struct bcm_cfg80211 *cfg = (struct bcm_cfg80211 *) data; in wl_cfgp2p_listen_expired() local
1524 if (!cfg) { in wl_cfgp2p_listen_expired()
1525 CFGP2P_ERR((" No cfg\n")); in wl_cfgp2p_listen_expired()
1530 msg.bsscfgidx = wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_listen_expired()
1532 ndev = cfg->p2p_net ? cfg->p2p_net : in wl_cfgp2p_listen_expired()
1533 wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_listen_expired()
1535 ndev = wl_to_p2p_bss_ndev(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_listen_expired()
1547 wl_cfgp2p_cancel_listen(struct bcm_cfg80211 *cfg, struct net_device *ndev, in wl_cfgp2p_cancel_listen() argument
1556 wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, in wl_cfgp2p_cancel_listen()
1557 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_cancel_listen()
1559 if (timer_pending(&cfg->p2p->listen_timer)) { in wl_cfgp2p_cancel_listen()
1560 del_timer_sync(&cfg->p2p->listen_timer); in wl_cfgp2p_cancel_listen()
1563 if (bcmcfg_to_p2p_wdev(cfg)) in wl_cfgp2p_cancel_listen()
1564 cfg80211_remain_on_channel_expired(wdev, cfg->last_roc_id, in wl_cfgp2p_cancel_listen()
1565 &cfg->remain_on_chan, GFP_KERNEL); in wl_cfgp2p_cancel_listen()
1568 cfg80211_remain_on_channel_expired(ndev, cfg->last_roc_id, in wl_cfgp2p_cancel_listen()
1569 &cfg->remain_on_chan, cfg->remain_on_chan_type, GFP_KERNEL); in wl_cfgp2p_cancel_listen()
1582 * @cfg : wl_private data
1587 wl_cfgp2p_discover_listen(struct bcm_cfg80211 *cfg, s32 channel, u32 duration_ms) in wl_cfgp2p_discover_listen() argument
1593 struct net_device *netdev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_discover_listen()
1596 if (unlikely(wl_get_p2p_status(cfg, DISCOVERY_ON) == 0)) { in wl_cfgp2p_discover_listen()
1601 if (timer_pending(&cfg->p2p->listen_timer)) { in wl_cfgp2p_discover_listen()
1608 wl_clr_p2p_status(cfg, LISTEN_EXPIRED); in wl_cfgp2p_discover_listen()
1614 ret = wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_LISTEN, channel, (u16) duration_ms, in wl_cfgp2p_discover_listen()
1615 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_discover_listen()
1616 _timer = &cfg->p2p->listen_timer; in wl_cfgp2p_discover_listen()
1631 wl_clr_p2p_status(cfg, LISTEN_EXPIRED); in wl_cfgp2p_discover_listen()
1640 wl_cfgp2p_discover_enable_search(struct bcm_cfg80211 *cfg, u8 enable) in wl_cfgp2p_discover_enable_search() argument
1644 if (!wl_get_p2p_status(cfg, DISCOVERY_ON)) { in wl_cfgp2p_discover_enable_search()
1649 if (wl_get_p2p_status(cfg, SEARCH_ENABLED) == enable) { in wl_cfgp2p_discover_enable_search()
1654 wl_chg_p2p_status(cfg, SEARCH_ENABLED); in wl_cfgp2p_discover_enable_search()
1659 wl_clr_p2p_status(cfg, SCANNING); in wl_cfgp2p_discover_enable_search()
1660 ret = wl_cfgp2p_set_p2p_mode(cfg, WL_P2P_DISC_ST_SCAN, 0, 0, in wl_cfgp2p_discover_enable_search()
1661 wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_discover_enable_search()
1671 wl_cfgp2p_action_tx_complete(struct bcm_cfg80211 *cfg, bcm_struct_cfgdev *cfgdev, in wl_cfgp2p_action_tx_complete() argument
1682 ndev = cfgdev_to_wlc_ndev(cfgdev, cfg); in wl_cfgp2p_action_tx_complete()
1683 if (wl_get_drv_status_all(cfg, SENDING_ACT_FRM)) { in wl_cfgp2p_action_tx_complete()
1688 wl_set_p2p_status(cfg, ACTION_TX_COMPLETED); in wl_cfgp2p_action_tx_complete()
1689 CFGP2P_ACTION(("TX AF: ACK. wait_rx:%d\n", cfg->need_wait_afrx)); in wl_cfgp2p_action_tx_complete()
1690 if (!cfg->need_wait_afrx && cfg->af_sent_channel) { in wl_cfgp2p_action_tx_complete()
1692 wl_stop_wait_next_action_frame(cfg, ndev, bsscfgidx); in wl_cfgp2p_action_tx_complete()
1695 else if (!wl_get_p2p_status(cfg, ACTION_TX_COMPLETED)) { in wl_cfgp2p_action_tx_complete()
1696 wl_set_p2p_status(cfg, ACTION_TX_NOACK); in wl_cfgp2p_action_tx_complete()
1705 if (cfg->afx_hdl && !ETHER_ISBCAST(&cfg->afx_hdl->tx_dst_addr)) { in wl_cfgp2p_action_tx_complete()
1706 wl_stop_wait_next_action_frame(cfg, ndev, bsscfgidx); in wl_cfgp2p_action_tx_complete()
1713 if (wl_get_drv_status_all(cfg, SENDING_ACT_FRM)) in wl_cfgp2p_action_tx_complete()
1714 complete(&cfg->send_af_done); in wl_cfgp2p_action_tx_complete()
1728 wl_cfgp2p_tx_action_frame(struct bcm_cfg80211 *cfg, struct net_device *dev, in wl_cfgp2p_tx_action_frame() argument
1738 CHSPEC_CHANNEL(af_params->channel), af_params->dwell_time, cfg->need_wait_afrx)); in wl_cfgp2p_tx_action_frame()
1740 wl_clr_p2p_status(cfg, ACTION_TX_COMPLETED); in wl_cfgp2p_tx_action_frame()
1741 wl_clr_p2p_status(cfg, ACTION_TX_NOACK); in wl_cfgp2p_tx_action_frame()
1746 if ((evt_ret = wl_cfg80211_apply_eventbuffer(bcmcfg_to_prmry_ndev(cfg), cfg, &buf)) < 0) in wl_cfgp2p_tx_action_frame()
1749 cfg->af_sent_channel = af_params->channel; in wl_cfgp2p_tx_action_frame()
1751 if (cfg->wlc_ver.wlc_ver_major < FW_MAJOR_VER_ACTFRAME_CHSPEC) { in wl_cfgp2p_tx_action_frame()
1755 cfg->af_tx_sent_jiffies = jiffies; in wl_cfgp2p_tx_action_frame()
1759 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, bssidx, &cfg->ioctl_buf_sync); in wl_cfgp2p_tx_action_frame()
1766 timeout = wait_for_completion_timeout(&cfg->send_af_done, in wl_cfgp2p_tx_action_frame()
1769 if (timeout >= 0 && wl_get_p2p_status(cfg, ACTION_TX_COMPLETED)) { in wl_cfgp2p_tx_action_frame()
1772 } else if (ETHER_ISBCAST(&cfg->afx_hdl->tx_dst_addr)) { in wl_cfgp2p_tx_action_frame()
1780 wl_clr_p2p_status(cfg, ACTION_TX_COMPLETED); in wl_cfgp2p_tx_action_frame()
1781 wl_clr_p2p_status(cfg, ACTION_TX_NOACK); in wl_cfgp2p_tx_action_frame()
1789 if ((evt_ret = wl_cfg80211_apply_eventbuffer(bcmcfg_to_prmry_ndev(cfg), cfg, &buf)) < 0) { in wl_cfgp2p_tx_action_frame()
1801 wl_cfgp2p_generate_bss_mac(struct bcm_cfg80211 *cfg, struct ether_addr *primary_addr) in wl_cfgp2p_generate_bss_mac() argument
1803 struct ether_addr *mac_addr = wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_DEVICE); in wl_cfgp2p_generate_bss_mac()
1806 dhd_pub_t *dhd = (dhd_pub_t *)(cfg->pub); in wl_cfgp2p_generate_bss_mac()
1815 (void)memcpy_s(mac_addr, ETH_ALEN, bcmcfg_to_prmry_ndev(cfg)->perm_addr, ETH_ALEN); in wl_cfgp2p_generate_bss_mac()
1824 int_addr = wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_CONNECTION1); in wl_cfgp2p_generate_bss_mac()
1829 int_addr = wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_CONNECTION2); in wl_cfgp2p_generate_bss_mac()
1886 wl_cfgp2p_supported(struct bcm_cfg80211 *cfg, struct net_device *ndev) in wl_cfgp2p_supported() argument
1897 CFGP2P_ERR(("cfg p2p error %d\n", ret)); in wl_cfgp2p_supported()
1901 if (cfg->pub->conf->fw_type == FW_TYPE_MESH) in wl_cfgp2p_supported()
1914 wl_cfgp2p_down(struct bcm_cfg80211 *cfg) in wl_cfgp2p_down() argument
1920 ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_down()
1921 wdev = bcmcfg_to_p2p_wdev(cfg); in wl_cfgp2p_down()
1923 ndev = cfg->p2p_net ? cfg->p2p_net : bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_down()
1927 wl_cfgp2p_cancel_listen(cfg, ndev, wdev, TRUE); in wl_cfgp2p_down()
1928 wl_cfgp2p_disable_discovery(cfg); in wl_cfgp2p_down()
1937 if (cfg->p2p_wdev) { in wl_cfgp2p_down()
1940 wl_cfgp2p_del_p2p_disc_if(cfg->p2p_wdev, cfg); in wl_cfgp2p_down()
1944 wl_cfgp2p_deinit_priv(cfg); in wl_cfgp2p_down()
1948 int wl_cfgp2p_vif_created(struct bcm_cfg80211 *cfg) in wl_cfgp2p_vif_created() argument
1950 if (cfg->p2p && ((wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION1) != -1) || in wl_cfgp2p_vif_created()
1951 (wl_to_p2p_bss_bssidx(cfg, P2PAPI_BSSCFG_CONNECTION2) != -1))) in wl_cfgp2p_vif_created()
1959 wl_cfgp2p_set_p2p_noa(struct bcm_cfg80211 *cfg, struct net_device *ndev, char* buf, int len) in wl_cfgp2p_set_p2p_noa() argument
1970 if (wl_cfgp2p_vif_created(cfg)) { in wl_cfgp2p_set_p2p_noa()
1971 cfg->p2p->noa.desc[0].start = 0; in wl_cfgp2p_set_p2p_noa()
1977 cfg->p2p->noa.desc[0].count = count; in wl_cfgp2p_set_p2p_noa()
1981 cfg->p2p->noa.desc[0].interval = start; in wl_cfgp2p_set_p2p_noa()
1984 cfg->p2p->noa.desc[0].duration = duration; in wl_cfgp2p_set_p2p_noa()
1986 if (cfg->p2p->noa.desc[0].count != 255 && cfg->p2p->noa.desc[0].count != 0) { in wl_cfgp2p_set_p2p_noa()
1987 cfg->p2p->noa.desc[0].start = 200; in wl_cfgp2p_set_p2p_noa()
1992 else if (cfg->p2p->noa.desc[0].count == 0) { in wl_cfgp2p_set_p2p_noa()
1993 cfg->p2p->noa.desc[0].start = 0; in wl_cfgp2p_set_p2p_noa()
2006 if ((cfg->p2p->noa.desc[0].interval == 102) || in wl_cfgp2p_set_p2p_noa()
2007 (cfg->p2p->noa.desc[0].interval == 100)) { in wl_cfgp2p_set_p2p_noa()
2008 cfg->p2p->noa.desc[0].start = 100 - in wl_cfgp2p_set_p2p_noa()
2009 cfg->p2p->noa.desc[0].duration; in wl_cfgp2p_set_p2p_noa()
2017 dongle_noa.desc[0].count = htod32(cfg->p2p->noa.desc[0].count); in wl_cfgp2p_set_p2p_noa()
2019 dongle_noa.desc[0].start = htod32(cfg->p2p->noa.desc[0].start); in wl_cfgp2p_set_p2p_noa()
2020 dongle_noa.desc[0].duration = htod32(cfg->p2p->noa.desc[0].duration); in wl_cfgp2p_set_p2p_noa()
2023 dongle_noa.desc[0].start = htod32(cfg->p2p->noa.desc[0].start*1000); in wl_cfgp2p_set_p2p_noa()
2024 dongle_noa.desc[0].duration = htod32(cfg->p2p->noa.desc[0].duration*1000); in wl_cfgp2p_set_p2p_noa()
2026 dongle_noa.desc[0].interval = htod32(cfg->p2p->noa.desc[0].interval*1000); in wl_cfgp2p_set_p2p_noa()
2027 bssidx = wl_get_bssidx_by_wdev(cfg, ndev->ieee80211_ptr); in wl_cfgp2p_set_p2p_noa()
2028 if (wl_cfgp2p_find_type(cfg, bssidx, &type) != BCME_OK) in wl_cfgp2p_set_p2p_noa()
2035 ret = wldev_iovar_setbuf(wl_to_p2p_bss_ndev(cfg, type), in wl_cfgp2p_set_p2p_noa()
2036 "p2p_noa", &dongle_noa, iovar_len, cfg->ioctl_buf, in wl_cfgp2p_set_p2p_noa()
2037 WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_set_p2p_noa()
2049 wl_cfgp2p_get_p2p_noa(struct bcm_cfg80211 *cfg, struct net_device *ndev, char* buf, int buf_len) in wl_cfgp2p_get_p2p_noa() argument
2058 if (wl_cfgp2p_vif_created(cfg)) { in wl_cfgp2p_get_p2p_noa()
2059 if (cfg->p2p->noa.desc[0].count || cfg->p2p->ops.ops) { in wl_cfgp2p_get_p2p_noa()
2061 _buf[1] = (cfg->p2p->ops.ops ? 0x80: 0) | in wl_cfgp2p_get_p2p_noa()
2062 (cfg->p2p->ops.ctw & 0x7f); /* ops + ctw */ in wl_cfgp2p_get_p2p_noa()
2064 if (cfg->p2p->noa.desc[0].count) { in wl_cfgp2p_get_p2p_noa()
2066 noa_desc->cnt_type = cfg->p2p->noa.desc[0].count; in wl_cfgp2p_get_p2p_noa()
2067 noa_desc->duration = cfg->p2p->noa.desc[0].duration; in wl_cfgp2p_get_p2p_noa()
2068 noa_desc->interval = cfg->p2p->noa.desc[0].interval; in wl_cfgp2p_get_p2p_noa()
2069 noa_desc->start = cfg->p2p->noa.desc[0].start; in wl_cfgp2p_get_p2p_noa()
2092 wl_cfgp2p_set_p2p_ps(struct bcm_cfg80211 *cfg, struct net_device *ndev, char* buf, int len) in wl_cfgp2p_set_p2p_ps() argument
2102 if (wl_cfgp2p_vif_created(cfg)) { in wl_cfgp2p_set_p2p_ps()
2106 bssidx = wl_get_bssidx_by_wdev(cfg, ndev->ieee80211_ptr); in wl_cfgp2p_set_p2p_ps()
2107 if (wl_cfgp2p_find_type(cfg, bssidx, &conn_idx) != BCME_OK) in wl_cfgp2p_set_p2p_ps()
2109 dev = wl_to_p2p_bss_ndev(cfg, conn_idx); in wl_cfgp2p_set_p2p_ps()
2111 cfg->p2p->ops.ctw = ctw; in wl_cfgp2p_set_p2p_ps()
2115 cfg->p2p->ops.ops = ps; in wl_cfgp2p_set_p2p_ps()
2117 "p2p_ops", &cfg->p2p->ops, sizeof(cfg->p2p->ops), in wl_cfgp2p_set_p2p_ps()
2118 cfg->ioctl_buf, WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_set_p2p_ps()
2142 wl_cfgp2p_set_p2p_ecsa(struct bcm_cfg80211 *cfg, struct net_device *ndev, char* buf, int len) in wl_cfgp2p_set_p2p_ecsa() argument
2154 if (wl_cfgp2p_vif_created(cfg)) { in wl_cfgp2p_set_p2p_ecsa()
2158 bssidx = wl_get_bssidx_by_wdev(cfg, ndev->ieee80211_ptr); in wl_cfgp2p_set_p2p_ecsa()
2159 if (wl_cfgp2p_find_type(cfg, bssidx, &conn_idx) != BCME_OK) { in wl_cfgp2p_set_p2p_ecsa()
2162 dev = wl_to_p2p_bss_ndev(cfg, conn_idx); in wl_cfgp2p_set_p2p_ecsa()
2196 wl_cfgp2p_increase_p2p_bw(struct bcm_cfg80211 *cfg, struct net_device *ndev, char* buf, int len) in wl_cfgp2p_increase_p2p_bw() argument
2205 ret = wldev_iovar_setbuf(ndev, "mchan_algo", &algo, sizeof(algo), cfg->ioctl_buf, in wl_cfgp2p_increase_p2p_bw()
2206 WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_increase_p2p_bw()
2213 ret = wldev_iovar_setbuf(ndev, "mchan_algo", &algo, sizeof(algo), cfg->ioctl_buf, in wl_cfgp2p_increase_p2p_bw()
2214 WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_increase_p2p_bw()
2219 ret = wldev_iovar_setbuf(ndev, "mchan_bw", &bw, sizeof(algo), cfg->ioctl_buf, in wl_cfgp2p_increase_p2p_bw()
2220 WLC_IOCTL_MAXLEN, &cfg->ioctl_buf_sync); in wl_cfgp2p_increase_p2p_bw()
2373 wl_cfgp2p_register_ndev(struct bcm_cfg80211 *cfg) in wl_cfgp2p_register_ndev() argument
2382 if (cfg->p2p_net) { in wl_cfgp2p_register_ndev()
2394 wdev = (struct wireless_dev *)MALLOCZ(cfg->osh, sizeof(*wdev)); in wl_cfgp2p_register_ndev()
2405 memcpy((void *)netdev_priv(net), &cfg, sizeof(struct bcm_cfg80211 *)); in wl_cfgp2p_register_ndev()
2422 wdev->wiphy = cfg->wdev->wiphy; in wl_cfgp2p_register_ndev()
2447 MFREE(cfg->osh, wdev, sizeof(*wdev)); in wl_cfgp2p_register_ndev()
2456 cfg->p2p_wdev = wdev; in wl_cfgp2p_register_ndev()
2458 cfg->p2p_wdev = NULL; in wl_cfgp2p_register_ndev()
2460 cfg->p2p_net = net; in wl_cfgp2p_register_ndev()
2468 wl_cfgp2p_unregister_ndev(struct bcm_cfg80211 *cfg) in wl_cfgp2p_unregister_ndev() argument
2471 if (!cfg || !cfg->p2p_net) { in wl_cfgp2p_unregister_ndev()
2476 unregister_netdev(cfg->p2p_net); in wl_cfgp2p_unregister_ndev()
2477 free_netdev(cfg->p2p_net); in wl_cfgp2p_unregister_ndev()
2497 struct bcm_cfg80211 *cfg = *(struct bcm_cfg80211 **)netdev_priv(net); in wl_cfgp2p_do_ioctl() local
2498 struct net_device *ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_do_ioctl()
2550 struct bcm_cfg80211 *cfg = wl_get_cfg(net); in wl_cfgp2p_if_stop() local
2555 wl_cfg80211_scan_stop(cfg, net); in wl_cfgp2p_if_stop()
2573 wl_cfgp2p_add_p2p_disc_if(struct bcm_cfg80211 *cfg) in wl_cfgp2p_add_p2p_disc_if() argument
2577 if (!cfg || !cfg->p2p_supported) in wl_cfgp2p_add_p2p_disc_if()
2582 if (cfg->p2p_wdev) { in wl_cfgp2p_add_p2p_disc_if()
2584 dhd_pub_t *dhd = (dhd_pub_t *)(cfg->pub); in wl_cfgp2p_add_p2p_disc_if()
2594 wl_probe_wdev_all(cfg); in wl_cfgp2p_add_p2p_disc_if()
2605 wl_cfgp2p_del_p2p_disc_if(cfg->p2p_wdev, cfg); in wl_cfgp2p_add_p2p_disc_if()
2619 net_os_send_hang_message(bcmcfg_to_prmry_ndev(cfg)); in wl_cfgp2p_add_p2p_disc_if()
2626 wdev = (struct wireless_dev *)MALLOCZ(cfg->osh, sizeof(*wdev)); in wl_cfgp2p_add_p2p_disc_if()
2632 wdev->wiphy = cfg->wdev->wiphy; in wl_cfgp2p_add_p2p_disc_if()
2634 memcpy(wdev->address, wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_DEVICE), ETHER_ADDR_LEN); in wl_cfgp2p_add_p2p_disc_if()
2637 if (cfg->p2p_net) in wl_cfgp2p_add_p2p_disc_if()
2638 dev_addr_set(cfg->p2p_net, wl_to_p2p_bss_macaddr(cfg, P2PAPI_BSSCFG_DEVICE)); in wl_cfgp2p_add_p2p_disc_if()
2642 cfg->p2p_wdev = wdev; in wl_cfgp2p_add_p2p_disc_if()
2652 struct bcm_cfg80211 *cfg = wiphy_priv(wiphy); in wl_cfgp2p_start_p2p_device() local
2654 if (!cfg) in wl_cfgp2p_start_p2p_device()
2657 RETURN_EIO_IF_NOT_UP(cfg); in wl_cfgp2p_start_p2p_device()
2662 if (wl_cfg80211_get_sec_iface(cfg) != WL_IFACE_NOT_PRESENT) { in wl_cfgp2p_start_p2p_device()
2669 ret = wl_cfgp2p_set_firm_p2p(cfg); in wl_cfgp2p_start_p2p_device()
2675 ret = wl_cfgp2p_enable_discovery(cfg, bcmcfg_to_prmry_ndev(cfg), NULL, 0); in wl_cfgp2p_start_p2p_device()
2681 p2p_on(cfg) = true; in wl_cfgp2p_start_p2p_device()
2683 cfg->p2p_prb_noti = false; in wl_cfgp2p_start_p2p_device()
2697 struct bcm_cfg80211 *cfg = wiphy_priv(wiphy); in wl_cfgp2p_stop_p2p_device() local
2699 if (!cfg) in wl_cfgp2p_stop_p2p_device()
2705 ndev = bcmcfg_to_prmry_ndev(cfg); in wl_cfgp2p_stop_p2p_device()
2706 if (!wl_get_drv_status(cfg, READY, ndev)) { in wl_cfgp2p_stop_p2p_device()
2711 ret = wl_cfg80211_scan_stop(cfg, wdev); in wl_cfgp2p_stop_p2p_device()
2716 if (!p2p_is_on(cfg)) { in wl_cfgp2p_stop_p2p_device()
2721 wl_cfg80211_p2plo_deinit(cfg); in wl_cfgp2p_stop_p2p_device()
2725 wl_cfgp2p_cancel_listen(cfg, bcmcfg_to_prmry_ndev(cfg), wdev, TRUE); in wl_cfgp2p_stop_p2p_device()
2727 ret = wl_cfgp2p_disable_discovery(cfg); in wl_cfgp2p_stop_p2p_device()
2732 p2p_on(cfg) = false; in wl_cfgp2p_stop_p2p_device()
2740 wl_cfgp2p_del_p2p_disc_if(struct wireless_dev *wdev, struct bcm_cfg80211 *cfg) in wl_cfgp2p_del_p2p_disc_if() argument
2744 if (!wdev || !cfg) { in wl_cfgp2p_del_p2p_disc_if()
2745 WL_ERR(("wdev or cfg is NULL\n")); in wl_cfgp2p_del_p2p_disc_if()
2751 if (!cfg->p2p_wdev) { in wl_cfgp2p_del_p2p_disc_if()
2757 if (wl_cfgp2p_disable_discovery(cfg) != BCME_OK) { in wl_cfgp2p_del_p2p_disc_if()
2777 MFREE(cfg->osh, wdev, sizeof(*wdev)); in wl_cfgp2p_del_p2p_disc_if()
2779 cfg->p2p_wdev = NULL; in wl_cfgp2p_del_p2p_disc_if()
2788 wl_cfgp2p_need_wait_actfrmae(struct bcm_cfg80211 *cfg, void *frame, u32 frame_len, bool tx) in wl_cfgp2p_need_wait_actfrmae() argument
2803 cfg->need_wait_afrx = false; in wl_cfgp2p_need_wait_actfrmae()
2809 cfg->need_wait_afrx = true; in wl_cfgp2p_need_wait_actfrmae()
2832 struct bcm_cfg80211 *cfg; in wl_cfgp2p_start_p2p_device_resume() local
2837 cfg = wl_get_cfg(primary_ndev); in wl_cfgp2p_start_p2p_device_resume()
2838 if (!cfg) in wl_cfgp2p_start_p2p_device_resume()
2841 RETURN_EIO_IF_NOT_UP(cfg); in wl_cfgp2p_start_p2p_device_resume()
2842 if (!p2p_on(cfg)) in wl_cfgp2p_start_p2p_device_resume()
2846 wiphy = bcmcfg_to_wiphy(cfg); in wl_cfgp2p_start_p2p_device_resume()
2847 cfg->bus_resuming = TRUE; in wl_cfgp2p_start_p2p_device_resume()
2848 ret = wl_cfgp2p_start_p2p_device(wiphy, cfg->wdev); in wl_cfgp2p_start_p2p_device_resume()
2849 cfg->bus_resuming = FALSE; in wl_cfgp2p_start_p2p_device_resume()