Lines Matching refs:ipc_wwan
31 struct iosm_wwan *ipc_wwan; member
54 struct iosm_wwan *ipc_wwan = priv->ipc_wwan; in ipc_wwan_link_open() local
58 if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist)) in ipc_wwan_link_open()
62 priv->ch_id = ipc_imem_sys_wwan_open(ipc_wwan->ipc_imem, if_id); in ipc_wwan_link_open()
65 dev_err(ipc_wwan->dev, in ipc_wwan_link_open()
74 dev_dbg(ipc_wwan->dev, "Channel id %d allocated to if_id %d", in ipc_wwan_link_open()
87 ipc_imem_sys_wwan_close(priv->ipc_wwan->ipc_imem, priv->if_id, in ipc_wwan_link_stop()
99 struct iosm_wwan *ipc_wwan = priv->ipc_wwan; in ipc_wwan_link_transmit() local
108 if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist)) in ipc_wwan_link_transmit()
112 ret = ipc_imem_sys_wwan_transmit(ipc_wwan->ipc_imem, in ipc_wwan_link_transmit()
122 dev_err(ipc_wwan->dev, "unable to push packets"); in ipc_wwan_link_transmit()
132 dev_dbg(ipc_wwan->dev, "skb dropped. IF_ID: %d, ret: %d", if_id, in ipc_wwan_link_transmit()
169 struct iosm_wwan *ipc_wwan = ctxt; in ipc_wwan_newlink() local
174 if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist)) in ipc_wwan_newlink()
180 priv->ipc_wwan = ipc_wwan; in ipc_wwan_newlink()
182 if (rcu_access_pointer(ipc_wwan->sub_netlist[if_id])) in ipc_wwan_newlink()
189 rcu_assign_pointer(ipc_wwan->sub_netlist[if_id], priv); in ipc_wwan_newlink()
199 struct iosm_wwan *ipc_wwan = ctxt; in ipc_wwan_dellink() local
203 if_id >= ARRAY_SIZE(ipc_wwan->sub_netlist))) in ipc_wwan_dellink()
206 if (WARN_ON(rcu_access_pointer(ipc_wwan->sub_netlist[if_id]) != priv)) in ipc_wwan_dellink()
209 RCU_INIT_POINTER(ipc_wwan->sub_netlist[if_id], NULL); in ipc_wwan_dellink()
221 int ipc_wwan_receive(struct iosm_wwan *ipc_wwan, struct sk_buff *skb_arg, in ipc_wwan_receive() argument
244 priv = rcu_dereference(ipc_wwan->sub_netlist[if_id]); in ipc_wwan_receive()
263 void ipc_wwan_tx_flowctrl(struct iosm_wwan *ipc_wwan, int if_id, bool on) in ipc_wwan_tx_flowctrl() argument
270 priv = rcu_dereference(ipc_wwan->sub_netlist[if_id]); in ipc_wwan_tx_flowctrl()
281 dev_dbg(ipc_wwan->dev, "session id[%d]: flowctrl enable", in ipc_wwan_tx_flowctrl()
293 struct iosm_wwan *ipc_wwan; in ipc_wwan_init() local
295 ipc_wwan = kzalloc(sizeof(*ipc_wwan), GFP_KERNEL); in ipc_wwan_init()
296 if (!ipc_wwan) in ipc_wwan_init()
299 ipc_wwan->dev = dev; in ipc_wwan_init()
300 ipc_wwan->ipc_imem = ipc_imem; in ipc_wwan_init()
303 if (wwan_register_ops(ipc_wwan->dev, &iosm_wwan_ops, ipc_wwan, in ipc_wwan_init()
305 kfree(ipc_wwan); in ipc_wwan_init()
309 return ipc_wwan; in ipc_wwan_init()
312 void ipc_wwan_deinit(struct iosm_wwan *ipc_wwan) in ipc_wwan_deinit() argument
315 wwan_unregister_ops(ipc_wwan->dev); in ipc_wwan_deinit()
317 kfree(ipc_wwan); in ipc_wwan_deinit()