mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-15 22:41:38 +00:00
The regulatory info of WMI_REG_CHAN_LIST_CC_EXT_EVENTID is not saved in ath11k now, the info should be saved in ath11k. Save the info for each radio and support switch regulatory rules dynamically. As mac.c will also call ath11k_reg_handle_chan_list() in next patches move the function to reg.c. Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 Signed-off-by: Wen Gong <quic_wgong@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://msgid.link/20231218085844.2658-3-quic_bqiang@quicinc.com
50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause-Clear */
|
|
/*
|
|
* Copyright (c) 2019 The Linux Foundation. All rights reserved.
|
|
* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*/
|
|
|
|
#ifndef ATH11K_REG_H
|
|
#define ATH11K_REG_H
|
|
|
|
#include <linux/kernel.h>
|
|
#include <net/regulatory.h>
|
|
|
|
struct ath11k_base;
|
|
struct ath11k;
|
|
|
|
/* DFS regdomains supported by Firmware */
|
|
enum ath11k_dfs_region {
|
|
ATH11K_DFS_REG_UNSET,
|
|
ATH11K_DFS_REG_FCC,
|
|
ATH11K_DFS_REG_ETSI,
|
|
ATH11K_DFS_REG_MKK,
|
|
ATH11K_DFS_REG_CN,
|
|
ATH11K_DFS_REG_KR,
|
|
ATH11K_DFS_REG_MKK_N,
|
|
ATH11K_DFS_REG_UNDEF,
|
|
};
|
|
|
|
/* Phy bitmaps */
|
|
#define ATH11K_REG_PHY_BITMAP_NO11AX BIT(5)
|
|
|
|
/* ATH11K Regulatory API's */
|
|
void ath11k_reg_init(struct ath11k *ar);
|
|
void ath11k_reg_reset_info(struct cur_regulatory_info *reg_info);
|
|
void ath11k_reg_free(struct ath11k_base *ab);
|
|
void ath11k_regd_update_work(struct work_struct *work);
|
|
struct ieee80211_regdomain *
|
|
ath11k_reg_build_regd(struct ath11k_base *ab,
|
|
struct cur_regulatory_info *reg_info, bool intersect,
|
|
enum wmi_vdev_type vdev_type,
|
|
enum ieee80211_ap_reg_power power_type);
|
|
int ath11k_regd_update(struct ath11k *ar);
|
|
int ath11k_reg_update_chan_list(struct ath11k *ar, bool wait);
|
|
enum wmi_reg_6ghz_ap_type
|
|
ath11k_reg_ap_pwr_convert(enum ieee80211_ap_reg_power power_type);
|
|
int ath11k_reg_handle_chan_list(struct ath11k_base *ab,
|
|
struct cur_regulatory_info *reg_info,
|
|
enum ieee80211_ap_reg_power power_type);
|
|
|
|
#endif
|