From 52595dc3040b67707385a922911406a20d8bdcff Mon Sep 17 00:00:00 2001 From: Aakanksha Doda Date: Tue, 17 Aug 2021 13:06:03 +0530 Subject: [PATCH] qcacmn: Add changes to extract halphy_cal_status from FW Add changes to get halphy_cal_status properly from FW defined variables to host. Change-Id: I891420e0d021702553c69569d71db394e897067e --- wmi/inc/wmi_unified_param.h | 12 +++++++++-- wmi/src/wmi_unified_tlv.c | 42 +++++++++++++++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 2621e9a69e..793b14ae07 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -8079,8 +8079,16 @@ struct wmi_host_pdev_get_dpd_status_event { struct wmi_host_pdev_get_halphy_cal_status_event { uint32_t pdev_id; - uint32_t halphy_cal_valid_bmap; - uint32_t halphy_cal_status; + uint32_t halphy_cal_adc_status:1, + halphy_cal_bwfilter_status:1, + halphy_cal_pdet_and_pal_status:1, + halphy_cal_rxdco_status:1, + halphy_cal_comb_txiq_rxiq_status:1, + halphy_cal_ibf_status:1, + halphy_cal_pa_droop_status:1, + halphy_cal_dac_status:1, + halphy_cal_ani_status:1, + halphy_cal_noise_floor_status:1; }; /** diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index cf85eabb33..51476714d7 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -15387,6 +15387,16 @@ extract_dpd_status_ev_param_tlv(wmi_unified_t wmi_handle, return QDF_STATUS_SUCCESS; } +static int +convert_halphy_status(wmi_pdev_get_halphy_cal_status_evt_fixed_param *status, + WMI_HALPHY_CAL_VALID_BITMAP_STATUS valid_bit) +{ + if (status->halphy_cal_valid_bmap && valid_bit) + return (status->halphy_cal_status && valid_bit); + + return 0; +} + static QDF_STATUS extract_halphy_cal_status_ev_param_tlv(wmi_unified_t wmi_handle, void *evt_buf, @@ -15404,8 +15414,36 @@ extract_halphy_cal_status_ev_param_tlv(wmi_unified_t wmi_handle, halphy_cal_status = param_buf->fixed_param; param->pdev_id = wmi_handle->ops->convert_pdev_id_target_to_host (wmi_handle, halphy_cal_status->pdev_id); - param->halphy_cal_valid_bmap = halphy_cal_status->halphy_cal_valid_bmap; - param->halphy_cal_status = halphy_cal_status->halphy_cal_status; + param->halphy_cal_adc_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_ADC_BMAP); + param->halphy_cal_bwfilter_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_BWFILTER_BMAP); + param->halphy_cal_pdet_and_pal_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_PDET_AND_PAL_BMAP); + param->halphy_cal_rxdco_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_RXDCO_BMAP); + param->halphy_cal_comb_txiq_rxiq_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_COMB_TXLO_TXIQ_RXIQ_BMAP); + param->halphy_cal_ibf_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_IBF_BMAP); + param->halphy_cal_pa_droop_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_PA_DROOP_BMAP); + param->halphy_cal_dac_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_DAC_BMAP); + param->halphy_cal_ani_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_ANI_BMAP); + param->halphy_cal_noise_floor_status = + convert_halphy_status(halphy_cal_status, + WMI_HALPHY_CAL_NOISE_FLOOR_BMAP); return QDF_STATUS_SUCCESS; }