1 /* 2 * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. 3 * 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: reg_build_chan_list.h 22 * This file provides prototypes of the regulatory component to build master 23 * and current channel list. 24 */ 25 26 #ifndef __REG_BUILD_CHAN_LIST_H__ 27 #define __REG_BUILD_CHAN_LIST_H__ 28 29 /** 30 * reg_reset_reg_rules() - provides the reg domain rules info 31 * @reg_rules: reg rules pointer 32 * 33 * Return: None 34 */ 35 void reg_reset_reg_rules(struct reg_rule_info *reg_rules); 36 37 /** 38 * reg_init_pdev_mas_chan_list() - Initialize pdev master channel list 39 * @pdev_priv_obj: Pointer to regdb pdev private object. 40 * @mas_chan_params: Master channel params. 41 */ 42 void reg_init_pdev_mas_chan_list( 43 struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj, 44 struct mas_chan_params *mas_chan_params); 45 46 /** 47 * reg_save_reg_rules_to_pdev() - Save psoc reg-rules to pdev. 48 * @pdev_priv_obj: Pointer to regdb pdev private object. 49 */ 50 void reg_save_reg_rules_to_pdev( 51 struct reg_rule_info *psoc_reg_rules, 52 struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj); 53 54 /** 55 * reg_compute_pdev_current_chan_list() - Compute pdev current channel list. 56 * @pdev_priv_obj: Pointer to regdb pdev private object. 57 */ 58 void reg_compute_pdev_current_chan_list( 59 struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj); 60 61 /** 62 * reg_propagate_mas_chan_list_to_pdev() - Propagate master channel list to pdev 63 * @psoc: Pointer to psoc object. 64 * @object: Void pointer to pdev object. 65 * @arg: Pointer to direction. 66 */ 67 void reg_propagate_mas_chan_list_to_pdev(struct wlan_objmgr_psoc *psoc, 68 void *object, void *arg); 69 70 /** 71 * reg_process_master_chan_list() - Compute master channel list based on the 72 * regulatory rules. 73 * @reg_info: Pointer to regulatory info 74 * 75 * Return: QDF_STATUS 76 */ 77 QDF_STATUS reg_process_master_chan_list(struct cur_regulatory_info *reg_info); 78 79 QDF_STATUS reg_get_current_chan_list(struct wlan_objmgr_pdev *pdev, 80 struct regulatory_channel *chan_list); 81 82 /** 83 * reg_update_nol_history_ch() - Set nol-history flag for the channels in the 84 * list. 85 * 86 * @pdev: Pdev ptr. 87 * @ch_list: Input channel list. 88 * @num_ch: Number of channels. 89 * @nol_history_ch: NOL-History flag. 90 * 91 * Return: void 92 */ 93 void reg_update_nol_history_ch(struct wlan_objmgr_pdev *pdev, 94 uint8_t *chan_list, 95 uint8_t num_chan, 96 bool nol_history_chan); 97 98 #endif 99