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
385 static void ipc_mux_dl_fcth_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_fcth_decode() argument
394 dev_err(ipc_mux->dev, "unexpected FCT length: %d", in ipc_mux_dl_fcth_decode()
401 dev_err(ipc_mux->dev, "not supported if_id: %d", if_id); in ipc_mux_dl_fcth_decode()
407 wwan = ipc_mux->session[if_id].wwan; in ipc_mux_dl_fcth_decode()
409 dev_err(ipc_mux->dev, "session Net ID is NULL"); in ipc_mux_dl_fcth_decode()
415 dev_dbg(ipc_mux->dev, "Flow_Credit:: if_id[%d] Old: %d Grants: %d", in ipc_mux_dl_fcth_decode()
416 if_id, ipc_mux->session[if_id].ul_flow_credits, ul_credits); in ipc_mux_dl_fcth_decode()
419 ipc_mux->session[if_id].ul_flow_credits += ul_credits; in ipc_mux_dl_fcth_decode()
422 if (ipc_mux->session[if_id].ul_flow_credits > 0) { in ipc_mux_dl_fcth_decode()
423 ipc_mux->session[if_id].net_tx_stop = false; in ipc_mux_dl_fcth_decode()
424 ipc_mux_netif_tx_flowctrl(&ipc_mux->session[if_id], in ipc_mux_dl_fcth_decode()
425 ipc_mux->session[if_id].if_id, false); in ipc_mux_dl_fcth_decode()
430 static void ipc_mux_dl_adgh_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_adgh_decode() argument
443 dev_err(ipc_mux->dev, "invalid ADGH signature received"); in ipc_mux_dl_adgh_decode()
449 dev_err(ipc_mux->dev, "invalid if_id while decoding %d", if_id); in ipc_mux_dl_adgh_decode()
455 wwan = ipc_mux->session[if_id].wwan; in ipc_mux_dl_adgh_decode()
457 dev_err(ipc_mux->dev, "session Net ID is NULL"); in ipc_mux_dl_adgh_decode()
470 ipc_mux->session[if_id].dl_head_pad_len - IPC_MEM_DL_ETH_OFFSET; in ipc_mux_dl_adgh_decode()
473 if_id += ipc_mux->wwan_q_offset; in ipc_mux_dl_adgh_decode()
477 rc = ipc_mux_net_receive(ipc_mux, if_id, wwan, packet_offset, in ipc_mux_dl_adgh_decode()
481 dev_err(ipc_mux->dev, "mux adgh decoding error"); in ipc_mux_dl_adgh_decode()
484 ipc_mux->session[if_id].flush = 1; in ipc_mux_dl_adgh_decode()
487 static void ipc_mux_dl_acbcmd_decode(struct iosm_mux *ipc_mux, in ipc_mux_dl_acbcmd_decode() argument
498 if (!ipc_mux_dl_cmds_decode_process(ipc_mux, &cmdh->param, in ipc_mux_dl_acbcmd_decode()
512 ipc_mux_dl_acb_send_cmds(ipc_mux, cmd, cmdh->if_id, in ipc_mux_dl_acbcmd_decode()
518 static void ipc_mux_dl_acb_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_dl_acb_decode() argument
536 if (ipc_mux_dl_cmdresps_decode_process(ipc_mux, cmdh->param, in ipc_mux_dl_acb_decode()
542 ipc_mux_dl_acbcmd_decode(ipc_mux, cmdh, size); in ipc_mux_dl_acb_decode()
548 static int mux_dl_process_dg(struct iosm_mux *ipc_mux, struct mux_adbh *adbh, in mux_dl_process_dg() argument
552 u32 dl_head_pad_len = ipc_mux->session[if_id].dl_head_pad_len; in mux_dl_process_dg()
570 rc = ipc_mux_net_receive(ipc_mux, if_id, ipc_mux->wwan, in mux_dl_process_dg()
584 static void mux_dl_adb_decode(struct iosm_mux *ipc_mux, in mux_dl_adb_decode() argument
603 dev_err(ipc_mux->dev, "unexpected empty ADB"); in mux_dl_adb_decode()
621 wwan = ipc_mux->session[if_id].wwan; in mux_dl_adb_decode()
641 dev_err(ipc_mux->dev, in mux_dl_adb_decode()
653 if (mux_dl_process_dg(ipc_mux, adbh, dg, skb, if_id, in mux_dl_adb_decode()
658 ipc_mux->session[if_id].flush = 1; in mux_dl_adb_decode()
674 void ipc_mux_dl_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_dl_decode() argument
686 mux_dl_adb_decode(ipc_mux, skb); in ipc_mux_dl_decode()
689 ipc_mux_dl_adgh_decode(ipc_mux, skb); in ipc_mux_dl_decode()
692 ipc_mux_dl_fcth_decode(ipc_mux, skb->data); in ipc_mux_dl_decode()
695 ipc_mux_dl_acb_decode(ipc_mux, skb); in ipc_mux_dl_decode()
698 ipc_mux_dl_cmd_decode(ipc_mux, skb); in ipc_mux_dl_decode()
702 dev_err(ipc_mux->dev, "invalid ABH signature"); in ipc_mux_dl_decode()
705 ipc_pcie_kfree_skb(ipc_mux->pcie, skb); in ipc_mux_dl_decode()
708 static int ipc_mux_ul_skb_alloc(struct iosm_mux *ipc_mux, in ipc_mux_ul_skb_alloc() argument
774 dev_err(ipc_mux->dev, in ipc_mux_ul_skb_alloc()
789 static void ipc_mux_ul_adgh_finish(struct iosm_mux *ipc_mux) in ipc_mux_ul_adgh_finish() argument
791 struct mux_adb *ul_adb = &ipc_mux->ul_adb; in ipc_mux_ul_adgh_finish()
797 dev_err(ipc_mux->dev, "no dest skb"); in ipc_mux_ul_adgh_finish()
803 skb_queue_tail(&ipc_mux->channel->ul_list, ul_adb->dest_skb); in ipc_mux_ul_adgh_finish()
806 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) { in ipc_mux_ul_adgh_finish()
809 session = &ipc_mux->session[ul_adb->adgh->if_id]; in ipc_mux_ul_adgh_finish()
815 bytes = ipc_mux->ul_data_pend_bytes; in ipc_mux_ul_adgh_finish()
816 ipc_mux->ul_data_pend_bytes = ipc_mux->ul_data_pend_bytes + in ipc_mux_ul_adgh_finish()
820 dev_dbg(ipc_mux->dev, "UL ADGH: size=%u, if_id=%d, payload=%d, %s=%lld", in ipc_mux_ul_adgh_finish()
825 static void ipc_mux_ul_encode_adth(struct iosm_mux *ipc_mux, in ipc_mux_ul_encode_adth() argument
838 for (i = 0; i < ipc_mux->nr_sessions; i++) { in ipc_mux_ul_encode_adth()
872 void ipc_mux_ul_adb_finish(struct iosm_mux *ipc_mux) in ipc_mux_ul_adb_finish() argument
879 ul_adb = &ipc_mux->ul_adb; in ipc_mux_ul_adb_finish()
884 ipc_mux_ul_encode_adth(ipc_mux, ul_adb, &offset); in ipc_mux_ul_adb_finish()
893 ul_adb->adbh->sequence_nr = cpu_to_le16(ipc_mux->adb_tx_sequence_nr++); in ipc_mux_ul_adb_finish()
896 spin_lock_irqsave(&(&ipc_mux->channel->ul_list)->lock, flags); in ipc_mux_ul_adb_finish()
897 __skb_queue_tail(&ipc_mux->channel->ul_list, ul_adb->dest_skb); in ipc_mux_ul_adb_finish()
898 spin_unlock_irqrestore(&(&ipc_mux->channel->ul_list)->lock, flags); in ipc_mux_ul_adb_finish()
902 ul_data_pend = ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_ul_adb_finish()
906 ipc_imem_td_update_timer_start(ipc_mux->imem); in ipc_mux_ul_adb_finish()
908 ipc_mux->acc_adb_size += le32_to_cpu(ul_adb->adbh->block_length); in ipc_mux_ul_adb_finish()
909 ipc_mux->acc_payload_size += ul_adb->payload_size; in ipc_mux_ul_adb_finish()
910 ipc_mux->ul_data_pend_bytes += ul_adb->payload_size; in ipc_mux_ul_adb_finish()
914 static bool ipc_mux_ul_adb_allocate(struct iosm_mux *ipc_mux, in ipc_mux_ul_adb_allocate() argument
925 status = ipc_mux_ul_skb_alloc(ipc_mux, adb, type); in ipc_mux_ul_adb_allocate()
940 static void ipc_mux_stop_tx_for_all_sessions(struct iosm_mux *ipc_mux) in ipc_mux_stop_tx_for_all_sessions() argument
946 session = &ipc_mux->session[idx]; in ipc_mux_stop_tx_for_all_sessions()
956 static bool ipc_mux_lite_send_qlt(struct iosm_mux *ipc_mux) in ipc_mux_lite_send_qlt() argument
964 if (!ipc_mux->initialized || ipc_mux->state != MUX_S_ACTIVE) in ipc_mux_lite_send_qlt()
971 session = &ipc_mux->session[i]; in ipc_mux_lite_send_qlt()
976 if (ipc_mux_ul_skb_alloc(ipc_mux, &ipc_mux->ul_adb, in ipc_mux_lite_send_qlt()
978 dev_err(ipc_mux->dev, in ipc_mux_lite_send_qlt()
984 qlt = (struct ipc_mem_lite_gen_tbl *)(ipc_mux->ul_adb.qlth_skb) in ipc_mux_lite_send_qlt()
996 skb_queue_tail(&ipc_mux->channel->ul_list, in ipc_mux_lite_send_qlt()
997 ipc_mux->ul_adb.qlth_skb); in ipc_mux_lite_send_qlt()
1000 ipc_mux->ul_adb.qlth_skb = NULL; in ipc_mux_lite_send_qlt()
1005 (void)ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_lite_send_qlt()
1013 static int ipc_mux_ul_bytes_credits_check(struct iosm_mux *ipc_mux, in ipc_mux_ul_bytes_credits_check() argument
1022 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) { in ipc_mux_ul_bytes_credits_check()
1025 dev_dbg(ipc_mux->dev, in ipc_mux_ul_bytes_credits_check()
1033 ipc_mux->ul_data_pend_bytes; in ipc_mux_ul_bytes_credits_check()
1035 ipc_mux_stop_tx_for_all_sessions(ipc_mux); in ipc_mux_ul_bytes_credits_check()
1037 dev_dbg(ipc_mux->dev, in ipc_mux_ul_bytes_credits_check()
1039 session->if_id, ipc_mux->ul_data_pend_bytes, in ipc_mux_ul_bytes_credits_check()
1061 static int ipc_mux_ul_adgh_encode(struct iosm_mux *ipc_mux, int session_id, in ipc_mux_ul_adgh_encode() argument
1076 nr_of_pkts = ipc_mux_ul_bytes_credits_check(ipc_mux, session, ul_list, in ipc_mux_ul_adgh_encode()
1094 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in ipc_mux_ul_adgh_encode()
1096 dev_err(ipc_mux->dev, "no reserved memory for ADGH"); in ipc_mux_ul_adgh_encode()
1103 dev_err(ipc_mux->dev, in ipc_mux_ul_adgh_encode()
1112 ipc_mux->size_needed = sizeof(struct mux_adgh) + aligned_size; in ipc_mux_ul_adgh_encode()
1114 if (ipc_mux->size_needed > adb->size) { in ipc_mux_ul_adgh_encode()
1115 dev_dbg(ipc_mux->dev, "size needed %d, adgh size %d", in ipc_mux_ul_adgh_encode()
1116 ipc_mux->size_needed, adb->size); in ipc_mux_ul_adgh_encode()
1137 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS) in ipc_mux_ul_adgh_encode()
1148 ipc_mux_ul_adgh_finish(ipc_mux); in ipc_mux_ul_adgh_encode()
1155 if (ipc_mux->ul_flow == MUX_UL_ON_CREDITS || in ipc_mux_ul_adgh_encode()
1156 ipc_mux->ul_data_pend_bytes >= in ipc_mux_ul_adgh_encode()
1158 adb_updated = ipc_mux_lite_send_qlt(ipc_mux); in ipc_mux_ul_adgh_encode()
1163 (void)ipc_imem_ul_write_td(ipc_mux->imem); in ipc_mux_ul_adgh_encode()
1177 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
1201 static int mux_ul_dg_update_tbl_index(struct iosm_mux *ipc_mux, in mux_ul_dg_update_tbl_index() argument
1210 ipc_mux_ul_adb_update_ql(ipc_mux, adb, session_id, in mux_ul_dg_update_tbl_index()
1212 ipc_mux_ul_adb_finish(ipc_mux); in mux_ul_dg_update_tbl_index()
1213 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in mux_ul_dg_update_tbl_index()
1217 ipc_mux->size_needed = le32_to_cpu(adb->adbh->block_length); in mux_ul_dg_update_tbl_index()
1219 ipc_mux->size_needed += offsetof(struct mux_adth, dg); in mux_ul_dg_update_tbl_index()
1220 ipc_mux->size_needed += qlth_n_ql_size; in mux_ul_dg_update_tbl_index()
1221 ipc_mux->size_needed += sizeof(*dg) + aligned_size; in mux_ul_dg_update_tbl_index()
1226 static int mux_ul_dg_encode(struct iosm_mux *ipc_mux, struct mux_adb *adb, in mux_ul_dg_encode() argument
1242 dev_err(ipc_mux->dev, in mux_ul_dg_encode()
1248 ipc_mux->size_needed += sizeof(*dg) + aligned_size; in mux_ul_dg_encode()
1250 if (ipc_mux->size_needed > adb->size || in mux_ul_dg_encode()
1251 ((ipc_mux->size_needed + ipc_mux->ul_data_pend_bytes) >= in mux_ul_dg_encode()
1254 if (mux_ul_dg_update_tbl_index(ipc_mux, session_id, in mux_ul_dg_encode()
1292 static int mux_ul_adb_encode(struct iosm_mux *ipc_mux, int session_id, in mux_ul_adb_encode() argument
1306 if (ipc_mux->ul_data_pend_bytes >= in mux_ul_adb_encode()
1308 ipc_mux_stop_tx_for_all_sessions(ipc_mux); in mux_ul_adb_encode()
1319 if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, in mux_ul_adb_encode()
1325 if (ipc_mux->size_needed == 0) in mux_ul_adb_encode()
1326 ipc_mux->size_needed = offset; in mux_ul_adb_encode()
1330 ipc_mux->size_needed += offsetof(struct mux_adth, dg); in mux_ul_adb_encode()
1331 ipc_mux->size_needed += qlth_n_ql_size; in mux_ul_adb_encode()
1336 if (mux_ul_dg_encode(ipc_mux, adb, dg, ul_list, src_skb, in mux_ul_adb_encode()
1341 ipc_mux_ul_adb_update_ql(ipc_mux, adb, session_id, in mux_ul_adb_encode()
1349 bool ipc_mux_ul_data_encode(struct iosm_mux *ipc_mux) in ipc_mux_ul_data_encode() argument
1358 if (!ipc_mux || ipc_mux->state != MUX_S_ACTIVE || in ipc_mux_ul_data_encode()
1359 ipc_mux->adb_prep_ongoing) in ipc_mux_ul_data_encode()
1362 ipc_mux->adb_prep_ongoing = true; in ipc_mux_ul_data_encode()
1365 session_id = ipc_mux->rr_next_session; in ipc_mux_ul_data_encode()
1366 session = &ipc_mux->session[session_id]; in ipc_mux_ul_data_encode()
1369 ipc_mux->rr_next_session++; in ipc_mux_ul_data_encode()
1370 if (ipc_mux->rr_next_session >= IPC_MEM_MUX_IP_SESSION_ENTRIES) in ipc_mux_ul_data_encode()
1371 ipc_mux->rr_next_session = 0; in ipc_mux_ul_data_encode()
1389 if (ipc_mux->protocol == MUX_LITE) in ipc_mux_ul_data_encode()
1390 updated = ipc_mux_ul_adgh_encode(ipc_mux, session_id, in ipc_mux_ul_data_encode()
1392 &ipc_mux->ul_adb, in ipc_mux_ul_data_encode()
1395 updated = mux_ul_adb_encode(ipc_mux, session_id, in ipc_mux_ul_data_encode()
1397 &ipc_mux->ul_adb, in ipc_mux_ul_data_encode()
1401 ipc_mux->adb_prep_ongoing = false; in ipc_mux_ul_data_encode()
1406 static int ipc_mux_get_payload_from_adb(struct iosm_mux *ipc_mux, in ipc_mux_get_payload_from_adb() argument
1419 dev_err(ipc_mux->dev, "unexpected empty ADB"); in ipc_mux_get_payload_from_adb()
1453 void ipc_mux_ul_encoded_process(struct iosm_mux *ipc_mux, struct sk_buff *skb) in ipc_mux_ul_encoded_process() argument
1459 if (ipc_mux->protocol == MUX_LITE) { in ipc_mux_ul_encoded_process()
1463 ipc_mux->ul_flow == MUX_UL) in ipc_mux_ul_encoded_process()
1464 ipc_mux->ul_data_pend_bytes = in ipc_mux_ul_encoded_process()
1465 ipc_mux->ul_data_pend_bytes - adgh_len; in ipc_mux_ul_encoded_process()
1468 payload = ipc_mux_get_payload_from_adb(ipc_mux, hr.adbh); in ipc_mux_ul_encoded_process()
1469 ipc_mux->ul_data_pend_bytes -= payload; in ipc_mux_ul_encoded_process()
1472 if (ipc_mux->ul_flow == MUX_UL) in ipc_mux_ul_encoded_process()
1473 dev_dbg(ipc_mux->dev, "ul_data_pend_bytes: %lld", in ipc_mux_ul_encoded_process()
1474 ipc_mux->ul_data_pend_bytes); in ipc_mux_ul_encoded_process()
1480 skb_queue_tail((&ipc_mux->ul_adb.free_list), skb); in ipc_mux_ul_encoded_process()
1487 struct iosm_mux *ipc_mux = ipc_imem->mux; in ipc_mux_tq_ul_trigger_encode() local
1491 ul_data_pend = ipc_mux_ul_data_encode(ipc_mux); in ipc_mux_tq_ul_trigger_encode()
1493 if (ipc_mux->protocol == MUX_AGGREGATION) in ipc_mux_tq_ul_trigger_encode()
1494 ipc_imem_adb_timer_start(ipc_mux->imem); in ipc_mux_tq_ul_trigger_encode()
1497 ipc_imem_td_update_timer_start(ipc_mux->imem); in ipc_mux_tq_ul_trigger_encode()
1500 ipc_mux->ev_mux_net_transmit_pending = false; in ipc_mux_tq_ul_trigger_encode()
1505 int ipc_mux_ul_trigger_encode(struct iosm_mux *ipc_mux, int if_id, in ipc_mux_ul_trigger_encode() argument
1508 struct mux_session *session = &ipc_mux->session[if_id]; in ipc_mux_ul_trigger_encode()
1511 if (ipc_mux->channel && in ipc_mux_ul_trigger_encode()
1512 ipc_mux->channel->state != IMEM_CHANNEL_ACTIVE) { in ipc_mux_ul_trigger_encode()
1513 dev_err(ipc_mux->dev, in ipc_mux_ul_trigger_encode()
1519 dev_err(ipc_mux->dev, "session net ID is NULL"); in ipc_mux_ul_trigger_encode()
1542 if (!ipc_mux->ev_mux_net_transmit_pending) { in ipc_mux_ul_trigger_encode()
1543 ipc_mux->ev_mux_net_transmit_pending = true; in ipc_mux_ul_trigger_encode()
1544 ret = ipc_task_queue_send_task(ipc_mux->imem, in ipc_mux_ul_trigger_encode()
1550 dev_dbg(ipc_mux->dev, "mux ul if[%d] qlen=%d/%u, len=%d/%d, prio=%d", in ipc_mux_ul_trigger_encode()