diff options
-rw-r--r-- | src/common/scheduler.c | 3 | ||||
-rw-r--r-- | src/osmo-bts-trx/scheduler_trx.c | 14 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/common/scheduler.c b/src/common/scheduler.c index e8df5373..054b6ca2 100644 --- a/src/common/scheduler.c +++ b/src/common/scheduler.c @@ -191,6 +191,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_tchf_fn, .dl_fn = tx_tchf_fn, .ul_fn = rx_tchf_fn, + .nope_fn = rx_tchf_fn, }, [TRXC_TCHH_0] = { .name = "TCH/H(0)", /* 3GPP TS 05.02, section 3.2 */ @@ -211,6 +212,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_tchh_fn, .dl_fn = tx_tchh_fn, .ul_fn = rx_tchh_fn, + .nope_fn = rx_tchh_fn, }, [TRXC_TCHH_1] = { .name = "TCH/H(1)", /* 3GPP TS 05.02, section 3.2 */ @@ -222,6 +224,7 @@ const struct trx_chan_desc trx_chan_desc[_TRX_CHAN_MAX] = { .rts_fn = rts_tchh_fn, .dl_fn = tx_tchh_fn, .ul_fn = rx_tchh_fn, + .nope_fn = rx_tchh_fn, }, [TRXC_SDCCH4_0] = { .name = "SDCCH/4(0)", /* 3GPP TS 05.02, section 3.3.4.1 */ diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 585e8872..f17354a8 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -1165,8 +1165,11 @@ int rx_tchf_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, /* copy burst to end of buffer of 8 bursts */ burst = *bursts_p + bid * 116 + 464; - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); /* wait until complete set of bursts */ if (bid != 3) @@ -1360,8 +1363,11 @@ int rx_tchh_fn(struct l1sched_trx *l1t, enum trx_chan_type chan, /* copy burst to end of buffer of 6 bursts */ burst = *bursts_p + bid * 116 + 464; - memcpy(burst, bi->burst + 3, 58); - memcpy(burst + 58, bi->burst + 87, 58); + if (bi->burst_len > 0) { + memcpy(burst, bi->burst + 3, 58); + memcpy(burst + 58, bi->burst + 87, 58); + } else + memset(burst, 0, 116); /* wait until complete set of bursts */ if (bid != 1) |