|
@@ -148,6 +148,7 @@ static struct wmi_cmd_map wmi_cmd_map = {
|
|
.gpio_config_cmdid = WMI_GPIO_CONFIG_CMDID,
|
|
.gpio_config_cmdid = WMI_GPIO_CONFIG_CMDID,
|
|
.gpio_output_cmdid = WMI_GPIO_OUTPUT_CMDID,
|
|
.gpio_output_cmdid = WMI_GPIO_OUTPUT_CMDID,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
|
|
+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
@@ -313,6 +314,7 @@ static struct wmi_cmd_map wmi_10x_cmd_map = {
|
|
.gpio_config_cmdid = WMI_10X_GPIO_CONFIG_CMDID,
|
|
.gpio_config_cmdid = WMI_10X_GPIO_CONFIG_CMDID,
|
|
.gpio_output_cmdid = WMI_10X_GPIO_OUTPUT_CMDID,
|
|
.gpio_output_cmdid = WMI_10X_GPIO_OUTPUT_CMDID,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
|
|
+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
@@ -477,6 +479,7 @@ static struct wmi_cmd_map wmi_10_2_4_cmd_map = {
|
|
.gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID,
|
|
.gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID,
|
|
.gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID,
|
|
.gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID,
|
|
.pdev_get_temperature_cmdid = WMI_10_2_PDEV_GET_TEMPERATURE_CMDID,
|
|
.pdev_get_temperature_cmdid = WMI_10_2_PDEV_GET_TEMPERATURE_CMDID,
|
|
|
|
+ .pdev_enable_adaptive_cca_cmdid = WMI_10_2_SET_CCA_PARAMS,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
@@ -1407,6 +1410,7 @@ static struct wmi_cmd_map wmi_10_2_cmd_map = {
|
|
.gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID,
|
|
.gpio_config_cmdid = WMI_10_2_GPIO_CONFIG_CMDID,
|
|
.gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID,
|
|
.gpio_output_cmdid = WMI_10_2_GPIO_OUTPUT_CMDID,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.pdev_get_temperature_cmdid = WMI_CMD_UNSUPPORTED,
|
|
|
|
+ .pdev_enable_adaptive_cca_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.scan_update_request_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_standby_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
.vdev_resume_response_cmdid = WMI_CMD_UNSUPPORTED,
|
|
@@ -6996,6 +7000,28 @@ unlock:
|
|
buf[len] = 0;
|
|
buf[len] = 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static struct sk_buff *
|
|
|
|
+ath10k_wmi_op_gen_pdev_enable_adaptive_cca(struct ath10k *ar, u8 enable,
|
|
|
|
+ u32 detect_level, u32 detect_margin)
|
|
|
|
+{
|
|
|
|
+ struct wmi_pdev_set_adaptive_cca_params *cmd;
|
|
|
|
+ struct sk_buff *skb;
|
|
|
|
+
|
|
|
|
+ skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd));
|
|
|
|
+ if (!skb)
|
|
|
|
+ return ERR_PTR(-ENOMEM);
|
|
|
|
+
|
|
|
|
+ cmd = (struct wmi_pdev_set_adaptive_cca_params *)skb->data;
|
|
|
|
+ cmd->enable = __cpu_to_le32(enable);
|
|
|
|
+ cmd->cca_detect_level = __cpu_to_le32(detect_level);
|
|
|
|
+ cmd->cca_detect_margin = __cpu_to_le32(detect_margin);
|
|
|
|
+
|
|
|
|
+ ath10k_dbg(ar, ATH10K_DBG_WMI,
|
|
|
|
+ "wmi pdev set adaptive cca params enable:%d detection level:%d detection margin:%d\n",
|
|
|
|
+ enable, detect_level, detect_margin);
|
|
|
|
+ return skb;
|
|
|
|
+}
|
|
|
|
+
|
|
static const struct wmi_ops wmi_ops = {
|
|
static const struct wmi_ops wmi_ops = {
|
|
.rx = ath10k_wmi_op_rx,
|
|
.rx = ath10k_wmi_op_rx,
|
|
.map_svc = wmi_main_svc_map,
|
|
.map_svc = wmi_main_svc_map,
|
|
@@ -7059,6 +7085,7 @@ static const struct wmi_ops wmi_ops = {
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|
|
/* .gen_adaptive_qcs not implemented */
|
|
/* .gen_adaptive_qcs not implemented */
|
|
|
|
+ /* .gen_pdev_enable_adaptive_cca not implemented */
|
|
};
|
|
};
|
|
|
|
|
|
static const struct wmi_ops wmi_10_1_ops = {
|
|
static const struct wmi_ops wmi_10_1_ops = {
|
|
@@ -7125,6 +7152,7 @@ static const struct wmi_ops wmi_10_1_ops = {
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|
|
/* .gen_adaptive_qcs not implemented */
|
|
/* .gen_adaptive_qcs not implemented */
|
|
|
|
+ /* .gen_pdev_enable_adaptive_cca not implemented */
|
|
};
|
|
};
|
|
|
|
|
|
static const struct wmi_ops wmi_10_2_ops = {
|
|
static const struct wmi_ops wmi_10_2_ops = {
|
|
@@ -7188,6 +7216,7 @@ static const struct wmi_ops wmi_10_2_ops = {
|
|
.gen_addba_set_resp = ath10k_wmi_op_gen_addba_set_resp,
|
|
.gen_addba_set_resp = ath10k_wmi_op_gen_addba_set_resp,
|
|
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
|
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
|
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
|
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
|
|
|
+ /* .gen_pdev_enable_adaptive_cca not implemented */
|
|
};
|
|
};
|
|
|
|
|
|
static const struct wmi_ops wmi_10_2_4_ops = {
|
|
static const struct wmi_ops wmi_10_2_4_ops = {
|
|
@@ -7251,6 +7280,8 @@ static const struct wmi_ops wmi_10_2_4_ops = {
|
|
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
|
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
|
|
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
|
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
|
|
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
|
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
|
|
|
|
+ .gen_pdev_enable_adaptive_cca =
|
|
|
|
+ ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
|
|
/* .gen_bcn_tmpl not implemented */
|
|
/* .gen_bcn_tmpl not implemented */
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_prb_tmpl not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|
|
/* .gen_p2p_go_bcn_ie not implemented */
|