diff --git a/target_if/core/src/target_if_main.c b/target_if/core/src/target_if_main.c index efd282dd8c16..2b2493082f03 100644 --- a/target_if/core/src/target_if_main.c +++ b/target_if/core/src/target_if_main.c @@ -30,6 +30,9 @@ #endif #include #include +#ifdef DFS_COMPONENT_ENABLE +#include +#endif #ifdef CONVERGED_P2P_ENABLE #include "target_if_p2p.h" @@ -151,6 +154,19 @@ static void target_if_tdls_tx_ops_register(struct wlan_lmac_if_tx_ops *tx_ops) } #endif /* CONVERGED_TDLS_ENABLE */ +#ifdef DFS_COMPONENT_ENABLE +static void target_if_dfs_tx_ops_register( + struct wlan_lmac_if_tx_ops *tx_ops) +{ + target_if_register_dfs_tx_ops(tx_ops); +} +#else +static void target_if_dfs_tx_ops_register( + struct wlan_lmac_if_tx_ops *tx_ops) +{ +} +#endif /* DFS_COMPONENT_ENABLE */ + static QDF_STATUS target_if_register_umac_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops) { @@ -166,6 +182,8 @@ QDF_STATUS target_if_register_umac_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops) target_if_nan_tx_ops_register(tx_ops); + target_if_dfs_tx_ops_register(tx_ops); + /* call regulatory callback to register tx ops */ target_if_register_regulatory_tx_ops(tx_ops); diff --git a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h index 277c53a82283..2c6d913c5979 100644 --- a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h +++ b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h @@ -22,6 +22,9 @@ #include "qdf_status.h" #include "wlan_objmgr_cmn.h" +#ifdef DFS_COMPONENT_ENABLE +#include +#endif #include "wlan_mgmt_txrx_utils_api.h" #include "wlan_scan_public_structs.h" #ifdef WLAN_ATF_ENABLE @@ -441,6 +444,7 @@ struct wlan_lmac_if_reg_tx_ops { * @dfs_is_mode_offload: Check the radio for offload. * @dfs_get_ah_devid: Get ah devid. * @dfs_get_phymode_info: Get phymode info. + * @dfs_reg_ev_handler: Register dfs event handler. */ struct wlan_lmac_if_dfs_tx_ops { @@ -497,6 +501,8 @@ struct wlan_lmac_if_dfs_tx_ops { QDF_STATUS (*dfs_get_phymode_info)(struct wlan_objmgr_pdev *pdev, uint32_t chan_mode, uint32_t *mode_info); + QDF_STATUS (*dfs_reg_ev_handler)(struct wlan_objmgr_pdev *pdev, + bool dfs_offload); }; /** @@ -758,6 +764,8 @@ struct wlan_lmac_if_nan_rx_ops { * @dfs_get_precac_enable: Get precac enable flag. * @dfs_get_override_precac_timeout: Get precac timeout. * @dfs_set_current_channel: Set DFS current channel. + * @dfs_process_radar_ind: Process radar found indication. + * @dfs_dfs_cac_complete_ind: Process cac complete indication. */ struct wlan_lmac_if_dfs_rx_ops { QDF_STATUS (*dfs_reset)(struct wlan_objmgr_pdev *pdev); @@ -811,6 +819,12 @@ struct wlan_lmac_if_dfs_rx_ops { uint8_t ic_ieee, uint8_t ic_vhtop_ch_freq_seg1, uint8_t ic_vhtop_ch_freq_seg2); +#ifdef DFS_COMPONENT_ENABLE + QDF_STATUS (*dfs_process_radar_ind)(struct wlan_objmgr_pdev *pdev, + struct radar_found_info *radar_found); + QDF_STATUS (*dfs_dfs_cac_complete_ind)(struct wlan_objmgr_pdev *pdev, + uint32_t vdev_id); +#endif }; /** diff --git a/umac/global_umac_dispatcher/lmac_if/src/wlan_lmac_if.c b/umac/global_umac_dispatcher/lmac_if/src/wlan_lmac_if.c index 58d20716e739..94a5724ed806 100644 --- a/umac/global_umac_dispatcher/lmac_if/src/wlan_lmac_if.c +++ b/umac/global_umac_dispatcher/lmac_if/src/wlan_lmac_if.c @@ -191,6 +191,8 @@ wlan_lmac_if_umac_dfs_rx_ops_register(struct wlan_lmac_if_rx_ops *rx_ops) dfs_rx_ops->dfs_get_override_precac_timeout = ucfg_dfs_get_override_precac_timeout; dfs_rx_ops->dfs_set_current_channel = tgt_dfs_set_current_channel; + dfs_rx_ops->dfs_process_radar_ind = tgt_dfs_process_radar_ind; + dfs_rx_ops->dfs_dfs_cac_complete_ind = tgt_dfs_cac_complete; return QDF_STATUS_SUCCESS; }