xref: /linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.h (revision 3e2e86ab19c2a43953de30089c5411c580ddb5f7)
1ac55136fSArend Van Spriel /*
2ac55136fSArend Van Spriel  * Copyright (c) 2016 Broadcom
3ac55136fSArend Van Spriel  *
4ac55136fSArend Van Spriel  * Permission to use, copy, modify, and/or distribute this software for any
5ac55136fSArend Van Spriel  * purpose with or without fee is hereby granted, provided that the above
6ac55136fSArend Van Spriel  * copyright notice and this permission notice appear in all copies.
7ac55136fSArend Van Spriel  *
8ac55136fSArend Van Spriel  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9ac55136fSArend Van Spriel  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10ac55136fSArend Van Spriel  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
11ac55136fSArend Van Spriel  * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12ac55136fSArend Van Spriel  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
13ac55136fSArend Van Spriel  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14ac55136fSArend Van Spriel  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15ac55136fSArend Van Spriel  */
16ac55136fSArend Van Spriel #ifndef _BRCMF_PNO_H
17ac55136fSArend Van Spriel #define _BRCMF_PNO_H
18ac55136fSArend Van Spriel 
19ac55136fSArend Van Spriel #define BRCMF_PNO_SCAN_COMPLETE		1
20ac55136fSArend Van Spriel #define BRCMF_PNO_MAX_PFN_COUNT		16
21ac55136fSArend Van Spriel 
22ac55136fSArend Van Spriel /**
23ac55136fSArend Van Spriel  * brcmf_pno_clean - disable and clear pno in firmware.
24ac55136fSArend Van Spriel  *
25ac55136fSArend Van Spriel  * @ifp: interface object used.
26ac55136fSArend Van Spriel  */
27ac55136fSArend Van Spriel int brcmf_pno_clean(struct brcmf_if *ifp);
28ac55136fSArend Van Spriel 
29ac55136fSArend Van Spriel /**
30ac55136fSArend Van Spriel  * brcmf_pno_config - configure pno parameters.
31ac55136fSArend Van Spriel  *
32ac55136fSArend Van Spriel  * @ifp: interface object used.
33ac55136fSArend Van Spriel  * @request: scheduled scan parameters.
34ac55136fSArend Van Spriel  */
35ac55136fSArend Van Spriel int brcmf_pno_config(struct brcmf_if *ifp,
36ac55136fSArend Van Spriel 		     struct cfg80211_sched_scan_request *request);
37ac55136fSArend Van Spriel 
38*3e2e86abSArend Van Spriel /**
39*3e2e86abSArend Van Spriel  * brcmf_pno_add_ssid - add ssid for pno in firmware.
40*3e2e86abSArend Van Spriel  *
41*3e2e86abSArend Van Spriel  * @ifp: interface object used.
42*3e2e86abSArend Van Spriel  * @ssid: ssid information.
43*3e2e86abSArend Van Spriel  * @active: indicate this ssid needs to be actively probed.
44*3e2e86abSArend Van Spriel  */
45*3e2e86abSArend Van Spriel int brcmf_pno_add_ssid(struct brcmf_if *ifp, struct cfg80211_ssid *ssid,
46*3e2e86abSArend Van Spriel 		       bool active);
47*3e2e86abSArend Van Spriel 
48ac55136fSArend Van Spriel #endif /* _BRCMF_PNO_H */
49