mac80211: rename patches to use all prefixes
[15.05/openwrt.git] / package / kernel / mac80211 / patches / 359-0007-brcmfmac-move-p2p-attach-detach-functions.patch
1 From: Arend van Spriel <arend@broadcom.com>
2 Date: Thu, 11 Jun 2015 00:12:22 +0200
3 Subject: [PATCH] brcmfmac: move p2p attach/detach functions
4
5 Moving two functions in p2p.c as is so next change will be
6 easier to review.
7
8 Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
9 Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
10 Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
11 Signed-off-by: Arend van Spriel <arend@broadcom.com>
12 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
13 ---
14
15 --- a/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
16 +++ b/drivers/net/wireless/brcm80211/brcmfmac/p2p.c
17 @@ -1908,105 +1908,6 @@ s32 brcmf_p2p_notify_rx_mgmt_p2p_probere
18  
19  
20  /**
21 - * brcmf_p2p_attach() - attach for P2P.
22 - *
23 - * @cfg: driver private data for cfg80211 interface.
24 - */
25 -s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg)
26 -{
27 -       struct brcmf_if *pri_ifp;
28 -       struct brcmf_if *p2p_ifp;
29 -       struct brcmf_cfg80211_vif *p2p_vif;
30 -       struct brcmf_p2p_info *p2p;
31 -       struct brcmf_pub *drvr;
32 -       s32 bssidx;
33 -       s32 err = 0;
34 -
35 -       p2p = &cfg->p2p;
36 -       p2p->cfg = cfg;
37 -
38 -       drvr = cfg->pub;
39 -
40 -       pri_ifp = drvr->iflist[0];
41 -       p2p_ifp = drvr->iflist[1];
42 -
43 -       p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif;
44 -
45 -       if (p2p_ifp) {
46 -               p2p_vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_P2P_DEVICE,
47 -                                         false);
48 -               if (IS_ERR(p2p_vif)) {
49 -                       brcmf_err("could not create discovery vif\n");
50 -                       err = -ENOMEM;
51 -                       goto exit;
52 -               }
53 -
54 -               p2p_vif->ifp = p2p_ifp;
55 -               p2p_ifp->vif = p2p_vif;
56 -               p2p_vif->wdev.netdev = p2p_ifp->ndev;
57 -               p2p_ifp->ndev->ieee80211_ptr = &p2p_vif->wdev;
58 -               SET_NETDEV_DEV(p2p_ifp->ndev, wiphy_dev(cfg->wiphy));
59 -
60 -               p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = p2p_vif;
61 -
62 -               brcmf_p2p_generate_bss_mac(p2p, NULL);
63 -               memcpy(p2p_ifp->mac_addr, p2p->dev_addr, ETH_ALEN);
64 -               brcmf_p2p_set_firmware(pri_ifp, p2p->dev_addr);
65 -
66 -               /* Initialize P2P Discovery in the firmware */
67 -               err = brcmf_fil_iovar_int_set(pri_ifp, "p2p_disc", 1);
68 -               if (err < 0) {
69 -                       brcmf_err("set p2p_disc error\n");
70 -                       brcmf_free_vif(p2p_vif);
71 -                       goto exit;
72 -               }
73 -               /* obtain bsscfg index for P2P discovery */
74 -               err = brcmf_fil_iovar_int_get(pri_ifp, "p2p_dev", &bssidx);
75 -               if (err < 0) {
76 -                       brcmf_err("retrieving discover bsscfg index failed\n");
77 -                       brcmf_free_vif(p2p_vif);
78 -                       goto exit;
79 -               }
80 -               /* Verify that firmware uses same bssidx as driver !! */
81 -               if (p2p_ifp->bssidx != bssidx) {
82 -                       brcmf_err("Incorrect bssidx=%d, compared to p2p_ifp->bssidx=%d\n",
83 -                                 bssidx, p2p_ifp->bssidx);
84 -                       brcmf_free_vif(p2p_vif);
85 -                       goto exit;
86 -               }
87 -
88 -               init_completion(&p2p->send_af_done);
89 -               INIT_WORK(&p2p->afx_hdl.afx_work, brcmf_p2p_afx_handler);
90 -               init_completion(&p2p->afx_hdl.act_frm_scan);
91 -               init_completion(&p2p->wait_next_af);
92 -       }
93 -exit:
94 -       return err;
95 -}
96 -
97 -
98 -/**
99 - * brcmf_p2p_detach() - detach P2P.
100 - *
101 - * @p2p: P2P specific data.
102 - */
103 -void brcmf_p2p_detach(struct brcmf_p2p_info *p2p)
104 -{
105 -       struct brcmf_cfg80211_vif *vif;
106 -
107 -       vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
108 -       if (vif != NULL) {
109 -               brcmf_p2p_cancel_remain_on_channel(vif->ifp);
110 -               brcmf_p2p_deinit_discovery(p2p);
111 -               /* remove discovery interface */
112 -               brcmf_free_vif(vif);
113 -               p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = NULL;
114 -       }
115 -       /* just set it all to zero */
116 -       memset(p2p, 0, sizeof(*p2p));
117 -}
118 -
119 -/**
120   * brcmf_p2p_get_current_chanspec() - Get current operation channel.
121   *
122   * @p2p: P2P specific data.
123 @@ -2425,3 +2326,102 @@ void brcmf_p2p_stop_device(struct wiphy
124         clear_bit(BRCMF_VIF_STATUS_READY, &vif->sme_state);
125         mutex_unlock(&cfg->usr_sync);
126  }
127 +
128 +/**
129 + * brcmf_p2p_attach() - attach for P2P.
130 + *
131 + * @cfg: driver private data for cfg80211 interface.
132 + */
133 +s32 brcmf_p2p_attach(struct brcmf_cfg80211_info *cfg)
134 +{
135 +       struct brcmf_if *pri_ifp;
136 +       struct brcmf_if *p2p_ifp;
137 +       struct brcmf_cfg80211_vif *p2p_vif;
138 +       struct brcmf_p2p_info *p2p;
139 +       struct brcmf_pub *drvr;
140 +       s32 bssidx;
141 +       s32 err = 0;
142 +
143 +       p2p = &cfg->p2p;
144 +       p2p->cfg = cfg;
145 +
146 +       drvr = cfg->pub;
147 +
148 +       pri_ifp = drvr->iflist[0];
149 +       p2p_ifp = drvr->iflist[1];
150 +
151 +       p2p->bss_idx[P2PAPI_BSSCFG_PRIMARY].vif = pri_ifp->vif;
152 +
153 +       if (p2p_ifp) {
154 +               p2p_vif = brcmf_alloc_vif(cfg, NL80211_IFTYPE_P2P_DEVICE,
155 +                                         false);
156 +               if (IS_ERR(p2p_vif)) {
157 +                       brcmf_err("could not create discovery vif\n");
158 +                       err = -ENOMEM;
159 +                       goto exit;
160 +               }
161 +
162 +               p2p_vif->ifp = p2p_ifp;
163 +               p2p_ifp->vif = p2p_vif;
164 +               p2p_vif->wdev.netdev = p2p_ifp->ndev;
165 +               p2p_ifp->ndev->ieee80211_ptr = &p2p_vif->wdev;
166 +               SET_NETDEV_DEV(p2p_ifp->ndev, wiphy_dev(cfg->wiphy));
167 +
168 +               p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = p2p_vif;
169 +
170 +               brcmf_p2p_generate_bss_mac(p2p, NULL);
171 +               memcpy(p2p_ifp->mac_addr, p2p->dev_addr, ETH_ALEN);
172 +               brcmf_p2p_set_firmware(pri_ifp, p2p->dev_addr);
173 +
174 +               /* Initialize P2P Discovery in the firmware */
175 +               err = brcmf_fil_iovar_int_set(pri_ifp, "p2p_disc", 1);
176 +               if (err < 0) {
177 +                       brcmf_err("set p2p_disc error\n");
178 +                       brcmf_free_vif(p2p_vif);
179 +                       goto exit;
180 +               }
181 +               /* obtain bsscfg index for P2P discovery */
182 +               err = brcmf_fil_iovar_int_get(pri_ifp, "p2p_dev", &bssidx);
183 +               if (err < 0) {
184 +                       brcmf_err("retrieving discover bsscfg index failed\n");
185 +                       brcmf_free_vif(p2p_vif);
186 +                       goto exit;
187 +               }
188 +               /* Verify that firmware uses same bssidx as driver !! */
189 +               if (p2p_ifp->bssidx != bssidx) {
190 +                       brcmf_err("Incorrect bssidx=%d, compared to p2p_ifp->bssidx=%d\n",
191 +                                 bssidx, p2p_ifp->bssidx);
192 +                       brcmf_free_vif(p2p_vif);
193 +                       goto exit;
194 +               }
195 +
196 +               init_completion(&p2p->send_af_done);
197 +               INIT_WORK(&p2p->afx_hdl.afx_work, brcmf_p2p_afx_handler);
198 +               init_completion(&p2p->afx_hdl.act_frm_scan);
199 +               init_completion(&p2p->wait_next_af);
200 +       }
201 +exit:
202 +       return err;
203 +}
204 +
205 +/**
206 + * brcmf_p2p_detach() - detach P2P.
207 + *
208 + * @p2p: P2P specific data.
209 + */
210 +void brcmf_p2p_detach(struct brcmf_p2p_info *p2p)
211 +{
212 +       struct brcmf_cfg80211_vif *vif;
213 +
214 +       vif = p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif;
215 +       if (vif != NULL) {
216 +               brcmf_p2p_cancel_remain_on_channel(vif->ifp);
217 +               brcmf_p2p_deinit_discovery(p2p);
218 +               /* remove discovery interface */
219 +               brcmf_free_vif(vif);
220 +               p2p->bss_idx[P2PAPI_BSSCFG_DEVICE].vif = NULL;
221 +       }
222 +       /* just set it all to zero */
223 +       memset(p2p, 0, sizeof(*p2p));
224 +}
225 +