afx_hdl
struct afx_hdl *afx_hdl = container_of(work, struct afx_hdl, afx_work);
struct brcmf_p2p_info *p2p = container_of(afx_hdl,
afx_hdl);
if (!afx_hdl->is_active)
if (afx_hdl->is_listen && afx_hdl->my_listen_chan)
err = brcmf_p2p_discover_listen(p2p, afx_hdl->my_listen_chan,
err = brcmf_p2p_act_frm_search(p2p, afx_hdl->peer_listen_chan);
complete(&afx_hdl->act_frm_scan);
struct afx_hdl *afx_hdl = &p2p->afx_hdl;
reinit_completion(&afx_hdl->act_frm_scan);
afx_hdl->is_active = true;
afx_hdl->peer_chan = P2P_INVALID_CHANNEL;
(afx_hdl->peer_chan == P2P_INVALID_CHANNEL)) {
afx_hdl->is_listen = false;
schedule_work(&afx_hdl->afx_work);
wait_for_completion_timeout(&afx_hdl->act_frm_scan,
if ((afx_hdl->peer_chan != P2P_INVALID_CHANNEL) ||
if (afx_hdl->my_listen_chan) {
afx_hdl->my_listen_chan);
afx_hdl->is_listen = true;
schedule_work(&afx_hdl->afx_work);
wait_for_completion_timeout(&afx_hdl->act_frm_scan,
if ((afx_hdl->peer_chan != P2P_INVALID_CHANNEL) ||
afx_hdl->peer_chan);
afx_hdl->is_active = false;
return afx_hdl->peer_chan;
struct afx_hdl *afx_hdl = &p2p->afx_hdl;
if (afx_hdl->peer_chan == P2P_INVALID_CHANNEL)
complete(&afx_hdl->act_frm_scan);
(ether_addr_equal(p2p_dev_addr, afx_hdl->tx_dst_addr))) {
afx_hdl->peer_chan = bi->ctl_ch;
afx_hdl->tx_dst_addr, afx_hdl->peer_chan);
complete(&afx_hdl->act_frm_scan);
complete(&p2p->afx_hdl.act_frm_scan);
struct afx_hdl *afx_hdl = &p2p->afx_hdl;
(ether_addr_equal(afx_hdl->tx_dst_addr, e->addr))) {
afx_hdl->peer_chan = ch.control_ch_num;
afx_hdl->peer_chan);
complete(&afx_hdl->act_frm_scan);
struct afx_hdl *afx_hdl = &p2p->afx_hdl;
memcpy(afx_hdl->tx_dst_addr, action_frame->da, ETH_ALEN);
afx_hdl = &p2p->afx_hdl;
afx_hdl->peer_listen_chan = le32_to_cpu(af_params->channel);
af_params->channel = cpu_to_le32(afx_hdl->peer_chan);
p2p->af_sent_channel == afx_hdl->my_listen_chan) {
struct afx_hdl *afx_hdl = &p2p->afx_hdl;
(ether_addr_equal(afx_hdl->tx_dst_addr, e->addr))) {
afx_hdl->peer_chan = ch.control_ch_num;
afx_hdl->peer_chan);
complete(&afx_hdl->act_frm_scan);
INIT_WORK(&p2p->afx_hdl.afx_work, brcmf_p2p_afx_handler);
init_completion(&p2p->afx_hdl.act_frm_scan);
p2p->afx_hdl.my_listen_chan = err;
struct afx_hdl afx_hdl;