Isolate transform_precoding in ULSCH
This commit is contained in:
@@ -552,6 +552,7 @@ void nr_schedule_ulsch(module_id_t module_id,
|
|||||||
RC.nrmac[module_id]->pre_processor_ul(
|
RC.nrmac[module_id]->pre_processor_ul(
|
||||||
module_id, frame, slot, num_slots_per_tdd, ulsch_in_slot_bitmap);
|
module_id, frame, slot, num_slots_per_tdd, ulsch_in_slot_bitmap);
|
||||||
|
|
||||||
|
NR_ServingCellConfigCommon_t *scc = RC.nrmac[module_id]->common_channels[0].ServingCellConfigCommon;
|
||||||
NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
|
NR_UE_info_t *UE_info = &RC.nrmac[module_id]->UE_info;
|
||||||
const NR_UE_list_t *UE_list = &UE_info->list;
|
const NR_UE_list_t *UE_list = &UE_info->list;
|
||||||
for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
|
for (int UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) {
|
||||||
@@ -561,6 +562,13 @@ void nr_schedule_ulsch(module_id_t module_id,
|
|||||||
|
|
||||||
uint16_t rnti = UE_info->rnti[UE_id];
|
uint16_t rnti = UE_info->rnti[UE_id];
|
||||||
|
|
||||||
|
NR_PUSCH_Config_t *pusch_Config = sched_ctrl->active_ubwp->bwp_Dedicated->pusch_Config->choice.setup;
|
||||||
|
uint8_t transform_precoding = 0;
|
||||||
|
if (!pusch_Config->transformPrecoder)
|
||||||
|
transform_precoding = !scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder;
|
||||||
|
else
|
||||||
|
transform_precoding = *pusch_Config->transformPrecoder;
|
||||||
|
|
||||||
/* PUSCH in a later slot, but corresponding DCI now! */
|
/* PUSCH in a later slot, but corresponding DCI now! */
|
||||||
nfapi_nr_ul_tti_request_t *future_ul_tti_req = &RC.nrmac[module_id]->UL_tti_req_ahead[0][sched_ctrl->sched_pusch.slot];
|
nfapi_nr_ul_tti_request_t *future_ul_tti_req = &RC.nrmac[module_id]->UL_tti_req_ahead[0][sched_ctrl->sched_pusch.slot];
|
||||||
AssertFatal(future_ul_tti_req->SFN == sched_ctrl->sched_pusch.frame
|
AssertFatal(future_ul_tti_req->SFN == sched_ctrl->sched_pusch.frame
|
||||||
@@ -593,6 +601,7 @@ void nr_schedule_ulsch(module_id_t module_id,
|
|||||||
const int startSymbolAndLength = tdaList->list.array[tda]->startSymbolAndLength;
|
const int startSymbolAndLength = tdaList->list.array[tda]->startSymbolAndLength;
|
||||||
int StartSymbolIndex, NrOfSymbols;
|
int StartSymbolIndex, NrOfSymbols;
|
||||||
SLIV2SL(startSymbolAndLength,&StartSymbolIndex,&NrOfSymbols);
|
SLIV2SL(startSymbolAndLength,&StartSymbolIndex,&NrOfSymbols);
|
||||||
|
|
||||||
pusch_pdu->start_symbol_index = StartSymbolIndex;
|
pusch_pdu->start_symbol_index = StartSymbolIndex;
|
||||||
pusch_pdu->nr_of_symbols = NrOfSymbols;
|
pusch_pdu->nr_of_symbols = NrOfSymbols;
|
||||||
|
|
||||||
@@ -605,18 +614,12 @@ void nr_schedule_ulsch(module_id_t module_id,
|
|||||||
pusch_pdu->subcarrier_spacing = sched_ctrl->active_ubwp->bwp_Common->genericParameters.subcarrierSpacing;
|
pusch_pdu->subcarrier_spacing = sched_ctrl->active_ubwp->bwp_Common->genericParameters.subcarrierSpacing;
|
||||||
pusch_pdu->cyclic_prefix = 0;
|
pusch_pdu->cyclic_prefix = 0;
|
||||||
|
|
||||||
NR_PUSCH_Config_t *pusch_Config = sched_ctrl->active_ubwp->bwp_Dedicated->pusch_Config->choice.setup;
|
|
||||||
NR_ServingCellConfigCommon_t *scc = RC.nrmac[0]->common_channels->ServingCellConfigCommon;
|
|
||||||
if (!pusch_Config->transformPrecoder)
|
|
||||||
pusch_pdu->transform_precoding = !scc->uplinkConfigCommon->initialUplinkBWP->rach_ConfigCommon->choice.setup->msg3_transformPrecoder;
|
|
||||||
else
|
|
||||||
pusch_pdu->transform_precoding = *pusch_Config->transformPrecoder;
|
|
||||||
|
|
||||||
if (pusch_Config->dataScramblingIdentityPUSCH)
|
if (pusch_Config->dataScramblingIdentityPUSCH)
|
||||||
pusch_pdu->data_scrambling_id = *pusch_Config->dataScramblingIdentityPUSCH;
|
pusch_pdu->data_scrambling_id = *pusch_Config->dataScramblingIdentityPUSCH;
|
||||||
else
|
else
|
||||||
pusch_pdu->data_scrambling_id = *scc->physCellId;
|
pusch_pdu->data_scrambling_id = *scc->physCellId;
|
||||||
|
|
||||||
|
pusch_pdu->transform_precoding = transform_precoding;
|
||||||
pusch_pdu->mcs_index = sched_ctrl->sched_pusch.mcs;
|
pusch_pdu->mcs_index = sched_ctrl->sched_pusch.mcs;
|
||||||
const int target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
const int target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
||||||
if (pusch_pdu->transform_precoding)
|
if (pusch_pdu->transform_precoding)
|
||||||
|
|||||||
Reference in New Issue
Block a user