host/trxcon/l1ctl.c: make l1ctl_tx_data_ind flexible
Now this function can send both DATA and TRAFFIC indications. Change-Id: I945c10c317155917b6e6ce9d663d9cb46f2e085c
This commit is contained in:
parent
c0100cd145
commit
f2179e6763
|
@ -177,18 +177,25 @@ int l1ctl_tx_ccch_mode_conf(struct l1ctl_link *l1l, uint8_t mode)
|
|||
return l1ctl_link_send(l1l, msg);
|
||||
}
|
||||
|
||||
int l1ctl_tx_data_ind(struct l1ctl_link *l1l, struct l1ctl_info_dl *data)
|
||||
int l1ctl_tx_data_ind(struct l1ctl_link *l1l,
|
||||
struct l1ctl_info_dl *data, uint8_t msg_type)
|
||||
{
|
||||
struct l1ctl_info_dl *dl;
|
||||
struct msgb *msg;
|
||||
size_t len;
|
||||
|
||||
msg = l1ctl_alloc_msg(L1CTL_DATA_IND);
|
||||
if (msg_type != L1CTL_DATA_IND && msg_type != L1CTL_TRAFFIC_IND) {
|
||||
LOGP(DL1C, LOGL_DEBUG, "Incorrect indication type\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
msg = l1ctl_alloc_msg(msg_type);
|
||||
if (msg == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
/* We store the 23-byte payload as a flexible array member */
|
||||
len = sizeof(struct l1ctl_info_dl) + 23;
|
||||
/* We store the payload as a flexible array member */
|
||||
len = sizeof(struct l1ctl_info_dl);
|
||||
len += msg_type == L1CTL_DATA_IND ? 23 : TRAFFIC_DATA_LEN;
|
||||
dl = (struct l1ctl_info_dl *) msgb_put(msg, len);
|
||||
|
||||
/* Copy header and data from source message */
|
||||
|
|
|
@ -18,6 +18,7 @@ int l1ctl_tx_pm_conf(struct l1ctl_link *l1l, uint16_t band_arfcn,
|
|||
int l1ctl_tx_reset_conf(struct l1ctl_link *l1l, uint8_t type);
|
||||
int l1ctl_tx_reset_ind(struct l1ctl_link *l1l, uint8_t type);
|
||||
|
||||
int l1ctl_tx_data_ind(struct l1ctl_link *l1l, struct l1ctl_info_dl *ind);
|
||||
int l1ctl_tx_data_ind(struct l1ctl_link *l1l,
|
||||
struct l1ctl_info_dl *data, uint8_t msg_type);
|
||||
int l1ctl_tx_rach_conf(struct l1ctl_link *l1l, uint32_t fn);
|
||||
int l1ctl_tx_data_conf(struct l1ctl_link *l1l);
|
||||
|
|
|
@ -181,7 +181,7 @@ int rx_data_fn(struct trx_instance *trx, struct trx_ts *ts,
|
|||
memcpy(data->payload, l2, 23);
|
||||
|
||||
/* Put a packet to higher layers */
|
||||
l1ctl_tx_data_ind(trx->l1l, data);
|
||||
l1ctl_tx_data_ind(trx->l1l, data, L1CTL_DATA_IND);
|
||||
talloc_free(data);
|
||||
|
||||
/* TODO: AGC, TA loops */
|
||||
|
|
Loading…
Reference in New Issue