|
|
@ -839,6 +839,13 @@ static inline int pusch_nr_decode_codeword(srsran_pusch_nr_t* q,
|
|
|
|
|
|
|
|
|
|
|
|
// Demultiplex UCI only if necessary
|
|
|
|
// Demultiplex UCI only if necessary
|
|
|
|
if (q->uci_mux) {
|
|
|
|
if (q->uci_mux) {
|
|
|
|
|
|
|
|
// As it can be HARQ-ACK takes LLRs from ULSCH, demultiplex HARQ-ACK first
|
|
|
|
|
|
|
|
int8_t* g_ack = (int8_t*)q->g_ack;
|
|
|
|
|
|
|
|
for (uint32_t i = 0; i < q->G_ack; i++) {
|
|
|
|
|
|
|
|
g_ack[i] = llr[q->pos_ack[i]];
|
|
|
|
|
|
|
|
llr[q->pos_ack[i]] = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Demultiplex UL-SCH, change sign
|
|
|
|
// Demultiplex UL-SCH, change sign
|
|
|
|
int8_t* g_ulsch = (int8_t*)q->g_ulsch;
|
|
|
|
int8_t* g_ulsch = (int8_t*)q->g_ulsch;
|
|
|
|
for (uint32_t i = 0; i < q->G_ulsch; i++) {
|
|
|
|
for (uint32_t i = 0; i < q->G_ulsch; i++) {
|
|
|
@ -848,12 +855,6 @@ static inline int pusch_nr_decode_codeword(srsran_pusch_nr_t* q,
|
|
|
|
g_ulsch[i] = 0;
|
|
|
|
g_ulsch[i] = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Demultiplex HARQ-ACK
|
|
|
|
|
|
|
|
int8_t* g_ack = (int8_t*)q->g_ack;
|
|
|
|
|
|
|
|
for (uint32_t i = 0; i < q->G_ack; i++) {
|
|
|
|
|
|
|
|
g_ack[i] = llr[q->pos_ack[i]];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Demultiplex CSI part 1
|
|
|
|
// Demultiplex CSI part 1
|
|
|
|
int8_t* g_csi1 = (int8_t*)q->g_csi1;
|
|
|
|
int8_t* g_csi1 = (int8_t*)q->g_csi1;
|
|
|
|
for (uint32_t i = 0; i < q->G_csi1; i++) {
|
|
|
|
for (uint32_t i = 0; i < q->G_csi1; i++) {
|
|
|
|