mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-15 01:01:56 -04:00
Merge "qcacmn: Add WAR for DBS mode phy0 band limitation"
This commit is contained in:
commit
eb44ee3099
1 changed files with 49 additions and 0 deletions
|
|
@ -505,6 +505,54 @@ QDF_STATUS init_deinit_spectral_scaling_params_free(
|
|||
|
||||
qdf_export_symbol(init_deinit_spectral_scaling_params_free);
|
||||
|
||||
#ifdef DBS_SBS_BAND_LIMITATION_WAR
|
||||
#define phy0 0
|
||||
#define phy2 2
|
||||
#define NUM_RF_MODES 2 /* (DBS + DBS_SBS) */
|
||||
/**
|
||||
* init_deinit_update_phy_reg_cap() - Update the low/high frequency for phy0.
|
||||
* @psoc: PSOC common object
|
||||
* @info: FW or lower layer related info
|
||||
* @wlan_psoc_host_hal_reg_capabilities_ext: Reg caps per PHY
|
||||
*
|
||||
* For the DBS_SBS capable board, update the low or high frequency
|
||||
* for phy0 by leveraging the frequency populated for phy2
|
||||
* depending on whether it is mapped to upper or lower 5G band by
|
||||
* FW/HAL-PHY.
|
||||
*/
|
||||
static void init_deinit_update_phy_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
struct tgt_info *info,
|
||||
struct wlan_psoc_host_hal_reg_capabilities_ext *reg_cap)
|
||||
{
|
||||
struct target_psoc_info *tgt_hdl;
|
||||
enum wmi_host_hw_mode_config_type mode;
|
||||
|
||||
tgt_hdl = (struct target_psoc_info *)wlan_psoc_get_tgt_if_handle(
|
||||
psoc);
|
||||
if (!tgt_hdl) {
|
||||
target_if_err("target_psoc_info is null in service ready ev");
|
||||
return;
|
||||
}
|
||||
|
||||
mode = target_psoc_get_preferred_hw_mode(tgt_hdl);
|
||||
|
||||
if ((mode == WMI_HOST_HW_MODE_DBS) &&
|
||||
(info->hw_modes.num_modes == NUM_RF_MODES)) {
|
||||
if (reg_cap[phy0].low_5ghz_chan > reg_cap[phy2].low_5ghz_chan)
|
||||
reg_cap[phy0].low_5ghz_chan = reg_cap[phy2].low_5ghz_chan;
|
||||
else if (reg_cap[phy0].high_5ghz_chan < reg_cap[phy2].high_5ghz_chan)
|
||||
reg_cap[phy0].high_5ghz_chan = reg_cap[phy2].high_5ghz_chan;
|
||||
}
|
||||
|
||||
}
|
||||
#else
|
||||
static void init_deinit_update_phy_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
struct tgt_info *info,
|
||||
struct wlan_psoc_host_hal_reg_capabilities_ext *reg_cap)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
int init_deinit_populate_phy_reg_cap(struct wlan_objmgr_psoc *psoc,
|
||||
void *handle, uint8_t *event,
|
||||
struct tgt_info *info, bool service_ready)
|
||||
|
|
@ -548,6 +596,7 @@ int init_deinit_populate_phy_reg_cap(struct wlan_objmgr_psoc *psoc,
|
|||
}
|
||||
}
|
||||
|
||||
init_deinit_update_phy_reg_cap(psoc, info, reg_cap);
|
||||
status = ucfg_reg_set_hal_reg_cap(psoc, reg_cap, num_phy_reg_cap);
|
||||
|
||||
return qdf_status_to_os_return(status);
|
||||
|
|
|
|||
Loading…
Reference in a new issue