// SPDX-License-Identifier: GPL-2.0-only /* * NXP Wireless LAN device driver: 802.11h * * Copyright 2011-2020 NXP */ #include "main.h" #include "fw.h" void mwifiex_init_11h_params(struct mwifiex_private *priv) { … } inline int mwifiex_is_11h_active(struct mwifiex_private *priv) { … } /* This function appends 11h info to a buffer while joining an * infrastructure BSS */ static void mwifiex_11h_process_infra_join(struct mwifiex_private *priv, u8 **buffer, struct mwifiex_bssdescriptor *bss_desc) { … } /* Enable or disable the 11h extensions in the firmware */ int mwifiex_11h_activate(struct mwifiex_private *priv, bool flag) { … } /* This functions processes TLV buffer for a pending BSS Join command. * * Activate 11h functionality in the firmware if the spectrum management * capability bit is found in the network we are joining. Also, necessary * TLVs are set based on requested network's 11h capability. */ void mwifiex_11h_process_join(struct mwifiex_private *priv, u8 **buffer, struct mwifiex_bssdescriptor *bss_desc) { … } /* This is DFS CAC work queue function. * This delayed work emits CAC finished event for cfg80211 if * CAC was started earlier. */ void mwifiex_dfs_cac_work_queue(struct work_struct *work) { … } /* This function prepares channel report request command to FW for * starting radar detection. */ int mwifiex_cmd_issue_chan_report_request(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, void *data_buf) { … } int mwifiex_stop_radar_detection(struct mwifiex_private *priv, struct cfg80211_chan_def *chandef) { … } /* This function is to abort ongoing CAC upon stopping AP operations * or during unload. */ void mwifiex_abort_cac(struct mwifiex_private *priv) { … } /* This function handles channel report event from FW during CAC period. * If radar is detected during CAC, driver indicates the same to cfg80211 * and also cancels ongoing delayed work. */ int mwifiex_11h_handle_chanrpt_ready(struct mwifiex_private *priv, struct sk_buff *skb) { … } /* Handler for radar detected event from FW.*/ int mwifiex_11h_handle_radar_detected(struct mwifiex_private *priv, struct sk_buff *skb) { … } /* This is work queue function for channel switch handling. * This function takes care of updating new channel definitin to * bss config structure, restart AP and indicate channel switch success * to cfg80211. */ void mwifiex_dfs_chan_sw_work_queue(struct work_struct *work) { … }