Merge remote-tracking branch 'origin/Fix_PM_value_for_DCI_1_0' into integration_2024_w04
This commit is contained in:
@@ -668,7 +668,8 @@ static void pf_dl(module_id_t module_id,
|
|||||||
else
|
else
|
||||||
sched_pdsch->mcs = get_mcs_from_bler(bo, stats, &sched_ctrl->dl_bler_stats, max_mcs, frame);
|
sched_pdsch->mcs = get_mcs_from_bler(bo, stats, &sched_ctrl->dl_bler_stats, max_mcs, frame);
|
||||||
sched_pdsch->nrOfLayers = get_dl_nrOfLayers(sched_ctrl, current_BWP->dci_format);
|
sched_pdsch->nrOfLayers = get_dl_nrOfLayers(sched_ctrl, current_BWP->dci_format);
|
||||||
sched_pdsch->pm_index = mac->identity_pm ? 0 : get_pm_index(mac, UE, sched_pdsch->nrOfLayers, mac->radio_config.pdsch_AntennaPorts.XP);
|
sched_pdsch->pm_index =
|
||||||
|
get_pm_index(mac, UE, current_BWP->dci_format, sched_pdsch->nrOfLayers, mac->radio_config.pdsch_AntennaPorts.XP);
|
||||||
const uint8_t Qm = nr_get_Qm_dl(sched_pdsch->mcs, current_BWP->mcsTableIdx);
|
const uint8_t Qm = nr_get_Qm_dl(sched_pdsch->mcs, current_BWP->mcsTableIdx);
|
||||||
const uint16_t R = nr_get_code_rate_dl(sched_pdsch->mcs, current_BWP->mcsTableIdx);
|
const uint16_t R = nr_get_code_rate_dl(sched_pdsch->mcs, current_BWP->mcsTableIdx);
|
||||||
uint32_t tbs = nr_compute_tbs(Qm,
|
uint32_t tbs = nr_compute_tbs(Qm,
|
||||||
|
|||||||
@@ -131,19 +131,19 @@ uint8_t get_dl_nrOfLayers(const NR_UE_sched_ctrl_t *sched_ctrl,
|
|||||||
|
|
||||||
uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
|
uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
|
||||||
const NR_UE_info_t *UE,
|
const NR_UE_info_t *UE,
|
||||||
|
nr_dci_format_t dci_format,
|
||||||
int layers,
|
int layers,
|
||||||
int xp_pdsch_antenna_ports)
|
int xp_pdsch_antenna_ports)
|
||||||
{
|
{
|
||||||
|
if (dci_format == NR_DL_DCI_FORMAT_1_0 || nrmac->identity_pm || xp_pdsch_antenna_ports == 1)
|
||||||
|
return 0; //identity matrix (basic 5G configuration handled by PMI report is with XP antennas)
|
||||||
|
|
||||||
const NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
|
const NR_UE_sched_ctrl_t *sched_ctrl = &UE->UE_sched_ctrl;
|
||||||
const int report_id = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.csi_report_id;
|
const int report_id = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.csi_report_id;
|
||||||
const nr_csi_report_t *csi_report = &UE->csi_report_template[report_id];
|
const nr_csi_report_t *csi_report = &UE->csi_report_template[report_id];
|
||||||
const int N1 = csi_report->N1;
|
const int N1 = csi_report->N1;
|
||||||
const int N2 = csi_report->N2;
|
const int N2 = csi_report->N2;
|
||||||
const int antenna_ports = (N1 * N2) << 1;
|
const int antenna_ports = (N1 * N2) << 1;
|
||||||
|
|
||||||
if (xp_pdsch_antenna_ports == 1)
|
|
||||||
return 0; //identity matrix (basic 5G configuration handled by PMI report is with XP antennas)
|
|
||||||
|
|
||||||
const int x1 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1;
|
const int x1 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x1;
|
||||||
const int x2 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2;
|
const int x2 = sched_ctrl->CSI_report.cri_ri_li_pmi_cqi_report.pmi_x2;
|
||||||
LOG_D(NR_MAC,"PMI report: x1 %d x2 %d layers: %d\n", x1, x2, layers);
|
LOG_D(NR_MAC,"PMI report: x1 %d x2 %d layers: %d\n", x1, x2, layers);
|
||||||
|
|||||||
@@ -379,6 +379,7 @@ NR_pdsch_dmrs_t get_dl_dmrs_params(const NR_ServingCellConfigCommon_t *scc,
|
|||||||
|
|
||||||
uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
|
uint16_t get_pm_index(const gNB_MAC_INST *nrmac,
|
||||||
const NR_UE_info_t *UE,
|
const NR_UE_info_t *UE,
|
||||||
|
nr_dci_format_t dci_format,
|
||||||
int layers,
|
int layers,
|
||||||
int xp_pdsch_antenna_ports);
|
int xp_pdsch_antenna_ports);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user