mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
qcacmn: Add service bit to support backward compatibility
The host will send TPC power to FW via the new WMI cmd WMI_VDEV_SET_TPC_POWER_CMDID going forward instead of WMI_VDEV_PARAM_TX_PWRLIMIT to accommodate 6GHz channels. But, to support backward compatibility for New Host+old FW the TPC power will be sent to FW via legacy WMI cmds WMI_VDEV_SET_PARAM_CMDID (during initial connection) or WMI_VDEV_PARAM_TX_PWRLIMIT (power value change during RRM req/bcn processing from connected AP) with the help of a service bit WMI_SERVICE_EXT_TPC_REG_SUPPORT. Change-Id: I22e11ff847cd384fac8ea0061e5df42cea0c8de8 CRs-Fixed: 2874245
This commit is contained in:
parent
18c61c06b8
commit
e4bc45cf24
3 changed files with 50 additions and 2 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -308,6 +308,8 @@ static int init_deinit_service_ext2_ready_event_handler(ol_scn_t scn_handle,
|
|||
goto exit;
|
||||
}
|
||||
|
||||
target_if_regulatory_set_ext_tpc(psoc);
|
||||
|
||||
/* send init command */
|
||||
init_deinit_set_send_init_cmd(psoc, tgt_hdl);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
|
|
@ -72,4 +72,13 @@ QDF_STATUS target_if_reg_set_5dot9_ghz_info(struct wlan_objmgr_psoc *psoc);
|
|||
*/
|
||||
struct wlan_lmac_if_reg_rx_ops *
|
||||
target_if_regulatory_get_rx_ops(struct wlan_objmgr_psoc *psoc);
|
||||
|
||||
/**
|
||||
* target_if_regulatory_set_ext_tpc() - populate FW support of new WMI command
|
||||
* for TPC
|
||||
* @psoc: psoc pointer
|
||||
*
|
||||
* Return: Success or Failure
|
||||
*/
|
||||
QDF_STATUS target_if_regulatory_set_ext_tpc(struct wlan_objmgr_psoc *psoc);
|
||||
#endif /* __TARGET_IF_REG_H__ */
|
||||
|
|
|
|||
|
|
@ -675,6 +675,43 @@ tgt_if_regulatory_set_tpc_power(struct wlan_objmgr_psoc *psoc,
|
|||
return wmi_unified_send_set_tpc_power_cmd(wmi_handle, vdev_id, param);
|
||||
}
|
||||
|
||||
/**
|
||||
* tgt_if_regulatory_is_ext_tpc_supported() - Check if FW supports new
|
||||
* WMI command for TPC power
|
||||
*
|
||||
* @psoc: Pointer to psoc
|
||||
*
|
||||
* Return: true if FW supports new WMI command for TPC, else false
|
||||
*/
|
||||
static bool
|
||||
tgt_if_regulatory_is_ext_tpc_supported(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
wmi_unified_t wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
|
||||
|
||||
if (!wmi_handle)
|
||||
return false;
|
||||
|
||||
return wmi_service_enabled(wmi_handle, wmi_service_ext_tpc_reg_support);
|
||||
}
|
||||
|
||||
QDF_STATUS target_if_regulatory_set_ext_tpc(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct wlan_lmac_if_reg_rx_ops *reg_rx_ops;
|
||||
|
||||
reg_rx_ops = target_if_regulatory_get_rx_ops(psoc);
|
||||
if (!reg_rx_ops) {
|
||||
target_if_err("reg_rx_ops is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (reg_rx_ops->reg_set_ext_tpc_supported)
|
||||
reg_rx_ops->reg_set_ext_tpc_supported(
|
||||
psoc,
|
||||
tgt_if_regulatory_is_ext_tpc_supported(psoc));
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
QDF_STATUS target_if_register_regulatory_tx_ops(
|
||||
struct wlan_lmac_if_tx_ops *tx_ops)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue