Lines Matching refs:ipc_mux

16 	struct iosm_mux *ipc_mux = ipc_imem->mux;  in ipc_mux_tq_cmd_send()  local
19 skb_queue_tail(&ipc_mux->channel->ul_list, acb->skb); in ipc_mux_tq_cmd_send()
20 ipc_imem_ul_send(ipc_mux->imem); in ipc_mux_tq_cmd_send()
25 static int ipc_mux_acb_send(struct iosm_mux *ipc_mux, bool blocking) in ipc_mux_acb_send() argument
27 struct completion *completion = &ipc_mux->channel->ul_sem; in ipc_mux_acb_send()
28 int ret = ipc_task_queue_send_task(ipc_mux->imem, ipc_mux_tq_cmd_send, in ipc_mux_acb_send()
29 0, &ipc_mux->acb, in ipc_mux_acb_send()
30 sizeof(ipc_mux->acb), false); in ipc_mux_acb_send()
32 dev_err(ipc_mux->dev, "unable to send mux command"); in ipc_mux_acb_send()
47 dev_err(ipc_mux->dev, "ch[%d] timeout", in ipc_mux_acb_send()
48 ipc_mux->channel_id); in ipc_mux_acb_send()
49 ipc_uevent_send(ipc_mux->imem->dev, UEVENT_MDM_TIMEOUT); in ipc_mux_acb_send()
58 static void ipc_mux_acb_init(struct iosm_mux *ipc_mux) in ipc_mux_acb_init() argument
60 struct mux_acb *acb = &ipc_mux->acb; in ipc_mux_acb_init()
67 header->sequence_nr = cpu_to_le16(ipc_mux->acb_tx_sequence_nr++); in ipc_mux_acb_init()
71 static struct mux_cmdh *ipc_mux_acb_add_cmd(struct iosm_mux *ipc_mux, u32 cmd, in ipc_mux_acb_add_cmd() argument
78 acb = &ipc_mux->acb; in ipc_mux_acb_add_cmd()
90 cmdh->transaction_id = cpu_to_le32(ipc_mux->tx_transaction_id++); in ipc_mux_acb_add_cmd()
101 static struct mux_lite_cmdh *ipc_mux_lite_add_cmd(struct iosm_mux *ipc_mux, in ipc_mux_lite_add_cmd() argument
115 cmdh->transaction_id = cpu_to_le32(ipc_mux->tx_transaction_id++); in ipc_mux_lite_add_cmd()
125 static int ipc_mux_acb_alloc(struct iosm_mux *ipc_mux) in ipc_mux_acb_alloc() argument
127 struct mux_acb *acb = &ipc_mux->acb; in ipc_mux_acb_alloc()
132 skb = ipc_pcie_alloc_skb(ipc_mux->pcie, MUX_MAX_UL_ACB_BUF_SIZE, in ipc_mux_acb_alloc()
145 int ipc_mux_dl_acb_send_cmds(struct iosm_mux *ipc_mux, u32 cmd_type, u8 if_id, in ipc_mux_dl_acb_send_cmds() argument
149 struct mux_acb *acb = &ipc_mux->acb; in ipc_mux_dl_acb_send_cmds()
154 ret = ipc_mux_acb_alloc(ipc_mux); in ipc_mux_dl_acb_send_cmds()
158 if (ipc_mux->protocol == MUX_LITE) { in ipc_mux_dl_acb_send_cmds()
159 cmdh.ack_lite = ipc_mux_lite_add_cmd(ipc_mux, cmd_type, acb, in ipc_mux_dl_acb_send_cmds()
167 ipc_mux_acb_init(ipc_mux); in ipc_mux_dl_acb_send_cmds()
168 cmdh.ack_aggr = ipc_mux_acb_add_cmd(ipc_mux, cmd_type, param, in ipc_mux_dl_acb_send_cmds()
175 ret = ipc_mux_acb_send(ipc_mux, blocking); in ipc_mux_dl_acb_send_cmds()
186 static int ipc_mux_dl_cmdresps_decode_process(struct iosm_mux *ipc_mux, in ipc_mux_dl_cmdresps_decode_process() argument
191 struct mux_acb *acb = &ipc_mux->acb; in ipc_mux_dl_cmdresps_decode_process()
204 if (ipc_mux->protocol != MUX_LITE) in ipc_mux_dl_cmdresps_decode_process()
207 dev_dbg(ipc_mux->dev, "if_id %u FLOW_CTL_ACK %u received", in ipc_mux_dl_cmdresps_decode_process()
215 if (ipc_mux->protocol == MUX_LITE) in ipc_mux_dl_cmdresps_decode_process()
225 complete(&ipc_mux->channel->ul_sem); in ipc_mux_dl_cmdresps_decode_process()
230 static int ipc_mux_dl_cmds_decode_process(struct iosm_mux *ipc_mux, in ipc_mux_dl_cmds_decode_process() argument
238 dev_dbg(ipc_mux->dev, "if_id[%d]: dlcmds decode process %d", in ipc_mux_dl_cmds_decode_process()
246 dev_err(ipc_mux->dev, "if_id [%d] not valid", in ipc_mux_dl_cmds_decode_process()
251 session = &ipc_mux->session[if_id]; in ipc_mux_dl_cmds_decode_process()
252 adb_timer = &ipc_mux->imem->adb_timer; in ipc_mux_dl_cmds_decode_process()
272 if (ipc_mux->protocol == MUX_AGGREGATION) { in ipc_mux_dl_cmds_decode_process()
273 ipc_mux_ul_adb_finish(ipc_mux); in ipc_mux_dl_cmds_decode_process()
284 dev_dbg(ipc_mux->dev, "if_id[%u] flow_ctl mask 0x%08X", in ipc_mux_dl_cmds_decode_process()
298 ipc_mux->acc_adb_size = 0; in ipc_mux_dl_cmds_decode_process()
299 ipc_mux->acc_payload_size = 0; in ipc_mux_dl_cmds_decode_process()
301 dev_dbg(ipc_mux->dev, "if_id[%u] FLOW CTRL 0x%08X", if_id, in ipc_mux_dl_cmds_decode_process()
315 static void ipc_mux_dl_cmd_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_dl_cmd_decode() argument
321 if (ipc_mux_dl_cmdresps_decode_process(ipc_mux, cmdh->param, in ipc_mux_dl_cmd_decode()
329 if (!ipc_mux_dl_cmds_decode_process(ipc_mux, &cmdh->param, in ipc_mux_dl_cmd_decode()
354 if (ipc_mux_dl_acb_send_cmds(ipc_mux, cmd, cmdh->if_id, in ipc_mux_dl_cmd_decode()
358 dev_err(ipc_mux->dev, in ipc_mux_dl_cmd_decode()
366 static int ipc_mux_net_receive(struct iosm_mux *ipc_mux, int if_id, in ipc_mux_net_receive() argument
384 static void ipc_mux_dl_fcth_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_fcth_decode() argument
393 dev_err(ipc_mux->dev, "unexpected FCT length: %d", in ipc_mux_dl_fcth_decode()
400 dev_err(ipc_mux->dev, "not supported if_id: %d", if_id); in ipc_mux_dl_fcth_decode()
406 wwan = ipc_mux->session[if_id].wwan; in ipc_mux_dl_fcth_decode()
408 dev_err(ipc_mux->dev, "session Net ID is NULL"); in ipc_mux_dl_fcth_decode()
414 dev_dbg(ipc_mux->dev, "Flow_Credit:: if_id[%d] Old: %d Grants: %d", in ipc_mux_dl_fcth_decode()
415 if_id, ipc_mux->session[if_id].ul_flow_credits, ul_credits); in ipc_mux_dl_fcth_decode()
418 ipc_mux->session[if_id].ul_flow_credits += ul_credits; in ipc_mux_dl_fcth_decode()
421 if (ipc_mux->session[if_id].ul_flow_credits > 0) { in ipc_mux_dl_fcth_decode()
422 ipc_mux->session[if_id].net_tx_stop = false; in ipc_mux_dl_fcth_decode()
423 ipc_mux_netif_tx_flowctrl(&ipc_mux->session[if_id], in ipc_mux_dl_fcth_decode()
424 ipc_mux->session[if_id].if_id, false); in ipc_mux_dl_fcth_decode()
429 static void ipc_mux_dl_adgh_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_adgh_decode() argument
442 dev_err(ipc_mux->dev, "invalid ADGH signature received"); in ipc_mux_dl_adgh_decode()
448 dev_err(ipc_mux->dev, "invalid if_id while decoding %d", if_id); in ipc_mux_dl_adgh_decode()
454 wwan = ipc_mux->session[if_id].wwan; in ipc_mux_dl_adgh_decode()
456 dev_err(ipc_mux->dev, "session Net ID is NULL"); in ipc_mux_dl_adgh_decode()
469 ipc_mux->session[if_id].dl_head_pad_len - IPC_MEM_DL_ETH_OFFSET; in ipc_mux_dl_adgh_decode()
472 if_id += ipc_mux->wwan_q_offset; in ipc_mux_dl_adgh_decode()
475 rc = ipc_mux_net_receive(ipc_mux, if_id, wwan, packet_offset, in ipc_mux_dl_adgh_decode()
478 dev_err(ipc_mux->dev, "mux adgh decoding error"); in ipc_mux_dl_adgh_decode()
481 ipc_mux->session[if_id].flush = 1; in ipc_mux_dl_adgh_decode()
484 static void ipc_mux_dl_acbcmd_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_acbcmd_decode() argument
495 if (!ipc_mux_dl_cmds_decode_process(ipc_mux, &cmdh->param, in ipc_mux_dl_acbcmd_decode()
509 ipc_mux_dl_acb_send_cmds(ipc_mux, cmd, cmdh->if_id, in ipc_mux_dl_acbcmd_decode()
515 static void ipc_mux_dl_acb_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_dl_acb_decode() argument
533 if (ipc_mux_dl_cmdresps_decode_process(ipc_mux, cmdh->param, in ipc_mux_dl_acb_decode()
539 ipc_mux_dl_acbcmd_decode(ipc_mux, cmdh, size); in ipc_mux_dl_acb_decode()
545 static int mux_dl_process_dg(struct iosm_mux *ipc_mux, struct mux_adbh *adbh, in mux_dl_process_dg() argument
549 u32 dl_head_pad_len = ipc_mux->session[if_id].dl_head_pad_len; in mux_dl_process_dg()
566 rc = ipc_mux_net_receive(ipc_mux, if_id, ipc_mux->wwan, in mux_dl_process_dg()
580 static void mux_dl_adb_decode(struct iosm_mux *ipc_mux, in mux_dl_adb_decode() argument
599 dev_err(ipc_mux->dev, "unexpected empty ADB"); in mux_dl_adb_decode()
617 wwan = ipc_mux->session[if_id].wwan; in mux_dl_adb_decode()
637 dev_err(ipc_mux->dev, in mux_dl_adb_decode()
649 if (mux_dl_process_dg(ipc_mux, adbh, dg, skb, if_id, in mux_dl_adb_decode()
654 ipc_mux->session[if_id].flush = 1; in mux_dl_adb_decode()
670 void ipc_mux_dl_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_dl_decode() argument
682 mux_dl_adb_decode(ipc_mux, skb); in ipc_mux_dl_decode()
685 ipc_mux_dl_adgh_decode(ipc_mux, skb); in ipc_mux_dl_decode()
688 ipc_mux_dl_fcth_decode(ipc_mux, skb->data); in ipc_mux_dl_decode()
691 ipc_mux_dl_acb_decode(ipc_mux, skb); in ipc_mux_dl_decode()
694 ipc_mux_dl_cmd_decode(ipc_mux, skb); in ipc_mux_dl_decode()
698 dev_err(ipc_mux->dev, "invalid ABH signature"); in ipc_mux_dl_decode()
701 ipc_pcie_kfree_skb(ipc_mux->pcie, skb); in ipc_mux_dl_decode()
704 static int ipc_mux_ul_skb_alloc(struct iosm_mux *ipc_mux, in ipc_mux_ul_skb_alloc() argument
770 dev_err(ipc_mux->dev, in ipc_mux_ul_skb_alloc()
785 static void ipc_mux_ul_adgh_finish(struct iosm_mux *ipc_mux) in ipc_mux_ul_adgh_finish() argument
787 struct mux_adb *ul_adb = &ipc_mux->ul_adb; in ipc_mux_ul_adgh_finish()
793 dev_err(ipc_mux->dev, "no dest skb"); in ipc_mux_ul_adgh_finish()
799 skb_queue_tail(&ipc_mux->channel->ul_list, ul_adb->dest_skb); in ipc_mux_ul_adgh_finish()
802 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) { in ipc_mux_ul_adgh_finish()
805 session = &ipc_mux->session[ul_adb->adgh->if_id]; in ipc_mux_ul_adgh_finish()
811 bytes = ipc_mux->ul_data_pend_bytes; in ipc_mux_ul_adgh_finish()
812 ipc_mux->ul_data_pend_bytes = ipc_mux->ul_data_pend_bytes + in ipc_mux_ul_adgh_finish()
816 dev_dbg(ipc_mux->dev, "UL ADGH: size=%u, if_id=%d, payload=%d, %s=%lld", in ipc_mux_ul_adgh_finish()
821 static void ipc_mux_ul_encode_adth(struct iosm_mux *ipc_mux, in ipc_mux_ul_encode_adth() argument
834 for (i = 0; i < ipc_mux->nr_sessions; i++) { in ipc_mux_ul_encode_adth()
868 void ipc_mux_ul_adb_finish(struct iosm_mux *ipc_mux) in ipc_mux_ul_adb_finish() argument
875 ul_adb = &ipc_mux->ul_adb; in ipc_mux_ul_adb_finish()
880 ipc_mux_ul_encode_adth(ipc_mux, ul_adb, &offset); in ipc_mux_ul_adb_finish()
889 ul_adb->adbh->sequence_nr = cpu_to_le16(ipc_mux->adb_tx_sequence_nr++); in ipc_mux_ul_adb_finish()
892 spin_lock_irqsave(&(&ipc_mux->channel->ul_list)->lock, flags); in ipc_mux_ul_adb_finish()
893 __skb_queue_tail(&ipc_mux->channel->ul_list, ul_adb->dest_skb); in ipc_mux_ul_adb_finish()
894 spin_unlock_irqrestore(&(&ipc_mux->channel->ul_list)->lock, flags); in ipc_mux_ul_adb_finish()
898 ul_data_pend = ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_ul_adb_finish()
902 ipc_imem_td_update_timer_start(ipc_mux->imem); in ipc_mux_ul_adb_finish()
904 ipc_mux->acc_adb_size += le32_to_cpu(ul_adb->adbh->block_length); in ipc_mux_ul_adb_finish()
905 ipc_mux->acc_payload_size += ul_adb->payload_size; in ipc_mux_ul_adb_finish()
906 ipc_mux->ul_data_pend_bytes += ul_adb->payload_size; in ipc_mux_ul_adb_finish()
910 static bool ipc_mux_ul_adb_allocate(struct iosm_mux *ipc_mux, in ipc_mux_ul_adb_allocate() argument
921 status = ipc_mux_ul_skb_alloc(ipc_mux, adb, type); in ipc_mux_ul_adb_allocate()
936 static void ipc_mux_stop_tx_for_all_sessions(struct iosm_mux *ipc_mux) in ipc_mux_stop_tx_for_all_sessions() argument
942 session = &ipc_mux->session[idx]; in ipc_mux_stop_tx_for_all_sessions()
952 static bool ipc_mux_lite_send_qlt(struct iosm_mux *ipc_mux) in ipc_mux_lite_send_qlt() argument
960 if (!ipc_mux->initialized || ipc_mux->state != MUX_S_ACTIVE) in ipc_mux_lite_send_qlt()
967 session = &ipc_mux->session[i]; in ipc_mux_lite_send_qlt()
972 if (ipc_mux_ul_skb_alloc(ipc_mux, &ipc_mux->ul_adb, in ipc_mux_lite_send_qlt()
974 dev_err(ipc_mux->dev, in ipc_mux_lite_send_qlt()
980 qlt = (struct ipc_mem_lite_gen_tbl *)(ipc_mux->ul_adb.qlth_skb) in ipc_mux_lite_send_qlt()
992 skb_queue_tail(&ipc_mux->channel->ul_list, in ipc_mux_lite_send_qlt()
993 ipc_mux->ul_adb.qlth_skb); in ipc_mux_lite_send_qlt()
996 ipc_mux->ul_adb.qlth_skb = NULL; in ipc_mux_lite_send_qlt()
1001 (void)ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_lite_send_qlt()
1009 static int ipc_mux_ul_bytes_credits_check(struct iosm_mux *ipc_mux, in ipc_mux_ul_bytes_credits_check() argument
1018 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) { in ipc_mux_ul_bytes_credits_check()
1021 dev_dbg(ipc_mux->dev, in ipc_mux_ul_bytes_credits_check()
1029 ipc_mux->ul_data_pend_bytes; in ipc_mux_ul_bytes_credits_check()
1031 ipc_mux_stop_tx_for_all_sessions(ipc_mux); in ipc_mux_ul_bytes_credits_check()
1033 dev_dbg(ipc_mux->dev, in ipc_mux_ul_bytes_credits_check()
1035 session->if_id, ipc_mux->ul_data_pend_bytes, in ipc_mux_ul_bytes_credits_check()
1057 static int ipc_mux_ul_adgh_encode(struct iosm_mux *ipc_mux, int session_id, in ipc_mux_ul_adgh_encode() argument
1072 nr_of_pkts = ipc_mux_ul_bytes_credits_check(ipc_mux, session, ul_list, in ipc_mux_ul_adgh_encode()
1090 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in ipc_mux_ul_adgh_encode()
1092 dev_err(ipc_mux->dev, "no reserved memory for ADGH"); in ipc_mux_ul_adgh_encode()
1099 dev_err(ipc_mux->dev, in ipc_mux_ul_adgh_encode()
1108 ipc_mux->size_needed = sizeof(struct mux_adgh) + aligned_size; in ipc_mux_ul_adgh_encode()
1110 if (ipc_mux->size_needed > adb->size) { in ipc_mux_ul_adgh_encode()
1111 dev_dbg(ipc_mux->dev, "size needed %d, adgh size %d", in ipc_mux_ul_adgh_encode()
1112 ipc_mux->size_needed, adb->size); in ipc_mux_ul_adgh_encode()
1133 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) in ipc_mux_ul_adgh_encode()
1144 ipc_mux_ul_adgh_finish(ipc_mux); in ipc_mux_ul_adgh_encode()
1151 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS || in ipc_mux_ul_adgh_encode()
1152 ipc_mux->ul_data_pend_bytes >= in ipc_mux_ul_adgh_encode()
1154 adb_updated = ipc_mux_lite_send_qlt(ipc_mux); in ipc_mux_ul_adgh_encode()
1159 (void)ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_ul_adgh_encode()
1173 void ipc_mux_ul_adb_update_ql(struct iosm_mux *ipc_mux, struct mux_adb *p_adb, in ipc_mux_ul_adb_update_ql() argument
1197 static int mux_ul_dg_update_tbl_index(struct iosm_mux *ipc_mux, in mux_ul_dg_update_tbl_index() argument
1206 ipc_mux_ul_adb_update_ql(ipc_mux, adb, session_id, in mux_ul_dg_update_tbl_index()
1208 ipc_mux_ul_adb_finish(ipc_mux); in mux_ul_dg_update_tbl_index()
1209 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in mux_ul_dg_update_tbl_index()
1214 ipc_mux->size_needed = le32_to_cpu(adb->adbh->block_length); in mux_ul_dg_update_tbl_index()
1216 ipc_mux->size_needed += offsetof(struct mux_adth, dg); in mux_ul_dg_update_tbl_index()
1217 ipc_mux->size_needed += qlth_n_ql_size; in mux_ul_dg_update_tbl_index()
1218 ipc_mux->size_needed += sizeof(*dg) + aligned_size; in mux_ul_dg_update_tbl_index()
1223 static int mux_ul_dg_encode(struct iosm_mux *ipc_mux, struct mux_adb *adb, in mux_ul_dg_encode() argument
1239 dev_err(ipc_mux->dev, in mux_ul_dg_encode()
1245 ipc_mux->size_needed += sizeof(*dg) + aligned_size; in mux_ul_dg_encode()
1247 if (ipc_mux->size_needed > adb->size || in mux_ul_dg_encode()
1248 ((ipc_mux->size_needed + ipc_mux->ul_data_pend_bytes) >= in mux_ul_dg_encode()
1251 if (mux_ul_dg_update_tbl_index(ipc_mux, session_id, in mux_ul_dg_encode()
1289 static int mux_ul_adb_encode(struct iosm_mux *ipc_mux, int session_id, in mux_ul_adb_encode() argument
1303 if (ipc_mux->ul_data_pend_bytes >= in mux_ul_adb_encode()
1305 ipc_mux_stop_tx_for_all_sessions(ipc_mux); in mux_ul_adb_encode()
1316 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in mux_ul_adb_encode()
1322 if (ipc_mux->size_needed == 0) in mux_ul_adb_encode()
1323 ipc_mux->size_needed = offset; in mux_ul_adb_encode()
1327 ipc_mux->size_needed += offsetof(struct mux_adth, dg); in mux_ul_adb_encode()
1328 ipc_mux->size_needed += qlth_n_ql_size; in mux_ul_adb_encode()
1333 if (mux_ul_dg_encode(ipc_mux, adb, dg, ul_list, src_skb, in mux_ul_adb_encode()
1338 ipc_mux_ul_adb_update_ql(ipc_mux, adb, session_id, in mux_ul_adb_encode()
1346 bool ipc_mux_ul_data_encode(struct iosm_mux *ipc_mux) in ipc_mux_ul_data_encode() argument
1355 if (!ipc_mux || ipc_mux->state != MUX_S_ACTIVE || in ipc_mux_ul_data_encode()
1356 ipc_mux->adb_prep_ongoing) in ipc_mux_ul_data_encode()
1359 ipc_mux->adb_prep_ongoing = true; in ipc_mux_ul_data_encode()
1362 session_id = ipc_mux->rr_next_session; in ipc_mux_ul_data_encode()
1363 session = &ipc_mux->session[session_id]; in ipc_mux_ul_data_encode()
1366 ipc_mux->rr_next_session++; in ipc_mux_ul_data_encode()
1367 if (ipc_mux->rr_next_session >= IPC_MEM_MUX_IP_SESSION_ENTRIES) in ipc_mux_ul_data_encode()
1368 ipc_mux->rr_next_session = 0; in ipc_mux_ul_data_encode()
1386 if (ipc_mux->protocol == MUX_LITE) in ipc_mux_ul_data_encode()
1387 updated = ipc_mux_ul_adgh_encode(ipc_mux, session_id, in ipc_mux_ul_data_encode()
1389 &ipc_mux->ul_adb, in ipc_mux_ul_data_encode()
1392 updated = mux_ul_adb_encode(ipc_mux, session_id, in ipc_mux_ul_data_encode()
1394 &ipc_mux->ul_adb, in ipc_mux_ul_data_encode()
1398 ipc_mux->adb_prep_ongoing = false; in ipc_mux_ul_data_encode()
1403 static int ipc_mux_get_payload_from_adb(struct iosm_mux *ipc_mux, in ipc_mux_get_payload_from_adb() argument
1416 dev_err(ipc_mux->dev, "unexpected empty ADB"); in ipc_mux_get_payload_from_adb()
1450 void ipc_mux_ul_encoded_process(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_ul_encoded_process() argument
1456 if (ipc_mux->protocol == MUX_LITE) { in ipc_mux_ul_encoded_process()
1460 ipc_mux->ul_flow == MUX_UL) in ipc_mux_ul_encoded_process()
1461 ipc_mux->ul_data_pend_bytes = in ipc_mux_ul_encoded_process()
1462 ipc_mux->ul_data_pend_bytes - adgh_len; in ipc_mux_ul_encoded_process()
1465 payload = ipc_mux_get_payload_from_adb(ipc_mux, hr.adbh); in ipc_mux_ul_encoded_process()
1466 ipc_mux->ul_data_pend_bytes -= payload; in ipc_mux_ul_encoded_process()
1469 if (ipc_mux->ul_flow == MUX_UL) in ipc_mux_ul_encoded_process()
1470 dev_dbg(ipc_mux->dev, "ul_data_pend_bytes: %lld", in ipc_mux_ul_encoded_process()
1471 ipc_mux->ul_data_pend_bytes); in ipc_mux_ul_encoded_process()
1478 skb_queue_tail((&ipc_mux->ul_adb.free_list), skb); in ipc_mux_ul_encoded_process()
1485 struct iosm_mux *ipc_mux = ipc_imem->mux; in ipc_mux_tq_ul_trigger_encode() local
1489 ul_data_pend = ipc_mux_ul_data_encode(ipc_mux); in ipc_mux_tq_ul_trigger_encode()
1491 if (ipc_mux->protocol == MUX_AGGREGATION) in ipc_mux_tq_ul_trigger_encode()
1492 ipc_imem_adb_timer_start(ipc_mux->imem); in ipc_mux_tq_ul_trigger_encode()
1495 ipc_imem_td_update_timer_start(ipc_mux->imem); in ipc_mux_tq_ul_trigger_encode()
1498 ipc_mux->ev_mux_net_transmit_pending = false; in ipc_mux_tq_ul_trigger_encode()
1503 int ipc_mux_ul_trigger_encode(struct iosm_mux *ipc_mux, int if_id, in ipc_mux_ul_trigger_encode() argument
1506 struct mux_session *session = &ipc_mux->session[if_id]; in ipc_mux_ul_trigger_encode()
1509 if (ipc_mux->channel && in ipc_mux_ul_trigger_encode()
1510 ipc_mux->channel->state != IMEM_CHANNEL_ACTIVE) { in ipc_mux_ul_trigger_encode()
1511 dev_err(ipc_mux->dev, in ipc_mux_ul_trigger_encode()
1517 dev_err(ipc_mux->dev, "session net ID is NULL"); in ipc_mux_ul_trigger_encode()
1540 if (!ipc_mux->ev_mux_net_transmit_pending) { in ipc_mux_ul_trigger_encode()
1541 ipc_mux->ev_mux_net_transmit_pending = true; in ipc_mux_ul_trigger_encode()
1542 ret = ipc_task_queue_send_task(ipc_mux->imem, in ipc_mux_ul_trigger_encode()
1548 dev_dbg(ipc_mux->dev, "mux ul if[%d] qlen=%d/%u, len=%d/%d, prio=%d", in ipc_mux_ul_trigger_encode()