Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: ISC
0002 /*
0003  * Copyright (c) 2016 Broadcom
0004  */
0005 #ifndef _BRCMF_PNO_H
0006 #define _BRCMF_PNO_H
0007 
0008 #define BRCMF_PNO_SCAN_COMPLETE         1
0009 #define BRCMF_PNO_MAX_PFN_COUNT         16
0010 #define BRCMF_PNO_SCHED_SCAN_MIN_PERIOD 10
0011 #define BRCMF_PNO_SCHED_SCAN_MAX_PERIOD 508
0012 
0013 /* forward declaration */
0014 struct brcmf_pno_info;
0015 
0016 /**
0017  * brcmf_pno_start_sched_scan - initiate scheduled scan on device.
0018  *
0019  * @ifp: interface object used.
0020  * @req: configuration parameters for scheduled scan.
0021  */
0022 int brcmf_pno_start_sched_scan(struct brcmf_if *ifp,
0023                    struct cfg80211_sched_scan_request *req);
0024 
0025 /**
0026  * brcmf_pno_stop_sched_scan - terminate scheduled scan on device.
0027  *
0028  * @ifp: interface object used.
0029  * @reqid: unique identifier of scan to be stopped.
0030  */
0031 int brcmf_pno_stop_sched_scan(struct brcmf_if *ifp, u64 reqid);
0032 
0033 /**
0034  * brcmf_pno_wiphy_params - fill scheduled scan parameters in wiphy instance.
0035  *
0036  * @wiphy: wiphy instance to be used.
0037  * @gscan: indicates whether the device has support for g-scan feature.
0038  */
0039 void brcmf_pno_wiphy_params(struct wiphy *wiphy, bool gscan);
0040 
0041 /**
0042  * brcmf_pno_attach - allocate and attach module information.
0043  *
0044  * @cfg: cfg80211 context used.
0045  */
0046 int brcmf_pno_attach(struct brcmf_cfg80211_info *cfg);
0047 
0048 /**
0049  * brcmf_pno_detach - detach and free module information.
0050  *
0051  * @cfg: cfg80211 context used.
0052  */
0053 void brcmf_pno_detach(struct brcmf_cfg80211_info *cfg);
0054 
0055 /**
0056  * brcmf_pno_find_reqid_by_bucket - find request id for given bucket index.
0057  *
0058  * @pi: pno instance used.
0059  * @bucket: index of firmware bucket.
0060  */
0061 u64 brcmf_pno_find_reqid_by_bucket(struct brcmf_pno_info *pi, u32 bucket);
0062 
0063 /**
0064  * brcmf_pno_get_bucket_map - determine bucket map for given netinfo.
0065  *
0066  * @pi: pno instance used.
0067  * @netinfo: netinfo to compare with bucket configuration.
0068  */
0069 u32 brcmf_pno_get_bucket_map(struct brcmf_pno_info *pi,
0070                  struct brcmf_pno_net_info_le *netinfo);
0071 
0072 #endif /* _BRCMF_PNO_H */