Home
last modified time | relevance | path

Searched refs:ipc_imem (Results 1 – 25 of 25) sorted by relevance

/linux-6.12.1/drivers/net/wwan/iosm/
Diosm_ipc_imem.c25 static int ipc_imem_msg_send_device_sleep(struct iosm_imem *ipc_imem, u32 state) in ipc_imem_msg_send_device_sleep() argument
32 ipc_imem->device_sleep = state; in ipc_imem_msg_send_device_sleep()
34 return ipc_protocol_tq_msg_send(ipc_imem->ipc_protocol, in ipc_imem_msg_send_device_sleep()
38 static bool ipc_imem_dl_skb_alloc(struct iosm_imem *ipc_imem, in ipc_imem_dl_skb_alloc() argument
45 return ipc_protocol_dl_td_prepare(ipc_imem->ipc_protocol, pipe); in ipc_imem_dl_skb_alloc()
51 static int ipc_imem_tq_td_alloc_timer(struct iosm_imem *ipc_imem, int arg, in ipc_imem_tq_td_alloc_timer() argument
59 struct ipc_pipe *pipe = &ipc_imem->channels[i].dl_pipe; in ipc_imem_tq_td_alloc_timer()
64 while (ipc_imem_dl_skb_alloc(ipc_imem, pipe)) in ipc_imem_tq_td_alloc_timer()
72 ipc_protocol_doorbell_trigger(ipc_imem->ipc_protocol, in ipc_imem_tq_td_alloc_timer()
76 ipc_imem->hrtimer_period = in ipc_imem_tq_td_alloc_timer()
[all …]
Diosm_ipc_imem_ops.c16 int ipc_imem_sys_wwan_open(struct iosm_imem *ipc_imem, int if_id) in ipc_imem_sys_wwan_open() argument
18 dev_dbg(ipc_imem->dev, "%s if id: %d", in ipc_imem_sys_wwan_open()
19 ipc_imem_phase_get_string(ipc_imem->phase), if_id); in ipc_imem_sys_wwan_open()
22 if (ipc_imem_phase_update(ipc_imem) != IPC_P_RUN) { in ipc_imem_sys_wwan_open()
23 dev_err(ipc_imem->dev, "net:%d : refused phase %s", if_id, in ipc_imem_sys_wwan_open()
24 ipc_imem_phase_get_string(ipc_imem->phase)); in ipc_imem_sys_wwan_open()
28 return ipc_mux_open_session(ipc_imem->mux, if_id); in ipc_imem_sys_wwan_open()
32 void ipc_imem_sys_wwan_close(struct iosm_imem *ipc_imem, int if_id, in ipc_imem_sys_wwan_close() argument
35 if (ipc_imem->mux && if_id >= IP_MUX_SESSION_START && in ipc_imem_sys_wwan_close()
37 ipc_mux_close_session(ipc_imem->mux, if_id); in ipc_imem_sys_wwan_close()
[all …]
Diosm_ipc_debugfs.c13 void ipc_debugfs_init(struct iosm_imem *ipc_imem) in ipc_debugfs_init() argument
15 ipc_imem->debugfs_wwan_dir = wwan_get_debugfs_dir(ipc_imem->dev); in ipc_debugfs_init()
17 ipc_imem->debugfs_dir = debugfs_create_dir(KBUILD_MODNAME, in ipc_debugfs_init()
18 ipc_imem->debugfs_wwan_dir); in ipc_debugfs_init()
20 ipc_imem->trace = ipc_trace_init(ipc_imem); in ipc_debugfs_init()
21 if (!ipc_imem->trace) in ipc_debugfs_init()
22 dev_warn(ipc_imem->dev, "trace channel init failed"); in ipc_debugfs_init()
25 void ipc_debugfs_deinit(struct iosm_imem *ipc_imem) in ipc_debugfs_deinit() argument
27 ipc_trace_deinit(ipc_imem->trace); in ipc_debugfs_deinit()
28 debugfs_remove_recursive(ipc_imem->debugfs_dir); in ipc_debugfs_deinit()
[all …]
Diosm_ipc_imem.h398 void ipc_imem_pm_s2idle_sleep(struct iosm_imem *ipc_imem, bool sleep);
405 void ipc_imem_pm_suspend(struct iosm_imem *ipc_imem);
412 void ipc_imem_pm_resume(struct iosm_imem *ipc_imem);
418 void ipc_imem_cleanup(struct iosm_imem *ipc_imem);
425 void ipc_imem_irq_process(struct iosm_imem *ipc_imem, int irq);
433 int imem_get_device_sleep_state(struct iosm_imem *ipc_imem);
442 void ipc_imem_td_update_timer_suspend(struct iosm_imem *ipc_imem, bool suspend);
449 void ipc_imem_channel_close(struct iosm_imem *ipc_imem, int channel_id);
459 int ipc_imem_channel_alloc(struct iosm_imem *ipc_imem, int index,
470 struct ipc_mem_channel *ipc_imem_channel_open(struct iosm_imem *ipc_imem,
[all …]
Diosm_ipc_imem_ops.h44 struct ipc_mem_channel *ipc_imem_sys_port_open(struct iosm_imem *ipc_imem,
46 void ipc_imem_sys_port_close(struct iosm_imem *ipc_imem,
66 int ipc_imem_sys_wwan_open(struct iosm_imem *ipc_imem, int if_id);
75 void ipc_imem_sys_wwan_close(struct iosm_imem *ipc_imem, int if_id,
87 int ipc_imem_sys_wwan_transmit(struct iosm_imem *ipc_imem, int if_id,
97 int ipc_imem_wwan_channel_init(struct iosm_imem *ipc_imem,
106 struct ipc_mem_channel *ipc_imem_sys_devlink_open(struct iosm_imem *ipc_imem);
Diosm_ipc_trace.c23 void ipc_trace_port_rx(struct iosm_imem *ipc_imem, struct sk_buff *skb) in ipc_trace_port_rx() argument
25 struct iosm_trace *ipc_trace = ipc_imem->trace; in ipc_trace_port_rx()
102 ipc_trace->channel = ipc_imem_sys_port_open(ipc_trace->ipc_imem, in ipc_trace_ctrl_file_write()
113 ipc_imem_sys_port_close(ipc_trace->ipc_imem, in ipc_trace_ctrl_file_write()
135 struct iosm_trace *ipc_trace_init(struct iosm_imem *ipc_imem) in ipc_trace_init() argument
141 ipc_imem_channel_init(ipc_imem, IPC_CTYPE_CTRL, chnl_cfg, in ipc_trace_init()
149 ipc_trace->dev = ipc_imem->dev; in ipc_trace_init()
150 ipc_trace->ipc_imem = ipc_imem; in ipc_trace_init()
157 ipc_imem->debugfs_dir, in ipc_trace_init()
161 ipc_imem->debugfs_dir, in ipc_trace_init()
Diosm_ipc_port.c16 ipc_port->channel = ipc_imem_sys_port_open(ipc_port->ipc_imem, in ipc_port_ctrl_start()
30 ipc_imem_sys_port_close(ipc_port->ipc_imem, ipc_port->channel); in ipc_port_ctrl_stop()
48 struct iosm_cdev *ipc_port_init(struct iosm_imem *ipc_imem, in ipc_port_init() argument
58 ipc_port->dev = ipc_imem->dev; in ipc_port_init()
59 ipc_port->pcie = ipc_imem->pcie; in ipc_port_init()
63 ipc_port->ipc_imem = ipc_imem; in ipc_port_init()
Diosm_ipc_protocol.c32 static int ipc_protocol_tq_msg_send_cb(struct iosm_imem *ipc_imem, int arg, in ipc_protocol_tq_msg_send_cb() argument
36 struct iosm_protocol *ipc_protocol = ipc_imem->ipc_protocol; in ipc_protocol_tq_msg_send_cb()
46 static int ipc_protocol_tq_msg_remove(struct iosm_imem *ipc_imem, int arg, in ipc_protocol_tq_msg_remove() argument
49 struct iosm_protocol *ipc_protocol = ipc_imem->ipc_protocol; in ipc_protocol_tq_msg_remove()
159 static int ipc_protocol_tq_wakeup_dev_slp(struct iosm_imem *ipc_imem, int arg, in ipc_protocol_tq_wakeup_dev_slp() argument
162 struct iosm_pm *ipc_pm = &ipc_imem->ipc_protocol->pm; in ipc_protocol_tq_wakeup_dev_slp()
223 struct iosm_protocol *ipc_protocol_init(struct iosm_imem *ipc_imem) in ipc_protocol_init() argument
233 ipc_protocol->dev = ipc_imem->dev; in ipc_protocol_init()
234 ipc_protocol->pcie = ipc_imem->pcie; in ipc_protocol_init()
235 ipc_protocol->imem = ipc_imem; in ipc_protocol_init()
[all …]
Diosm_ipc_task_queue.c24 args->response = args->func(args->ipc_imem, args->arg, in ipc_task_queue_handler()
77 ipc_task_queue_add_task(struct iosm_imem *ipc_imem, in ipc_task_queue_add_task() argument
79 int (*func)(struct iosm_imem *ipc_imem, int arg, in ipc_task_queue_add_task() argument
83 struct tasklet_struct *ipc_tasklet = ipc_imem->ipc_task->ipc_tasklet; in ipc_task_queue_add_task()
84 struct ipc_task_queue *ipc_task = &ipc_imem->ipc_task->ipc_queue; in ipc_task_queue_add_task()
108 ipc_task->args[pos].ipc_imem = ipc_imem; in ipc_task_queue_add_task()
134 dev_err(ipc_imem->ipc_task->dev, "queue is full"); in ipc_task_queue_add_task()
141 int (*func)(struct iosm_imem *ipc_imem, int arg, in ipc_task_queue_send_task() argument
Diosm_ipc_debugfs.h10 void ipc_debugfs_init(struct iosm_imem *ipc_imem);
11 void ipc_debugfs_deinit(struct iosm_imem *ipc_imem);
13 static inline void ipc_debugfs_init(struct iosm_imem *ipc_imem) {} in ipc_debugfs_init() argument
14 static inline void ipc_debugfs_deinit(struct iosm_imem *ipc_imem) {} in ipc_debugfs_deinit() argument
Diosm_ipc_trace.h40 struct iosm_imem *ipc_imem; member
55 struct iosm_trace *ipc_trace_init(struct iosm_imem *ipc_imem);
57 void ipc_trace_port_rx(struct iosm_imem *ipc_imem, struct sk_buff *skb);
66 static inline void ipc_trace_port_rx(struct iosm_imem *ipc_imem, in ipc_trace_port_rx() argument
Diosm_ipc_wwan.c43 struct iosm_imem *ipc_imem; member
60 priv->ch_id = ipc_imem_sys_wwan_open(ipc_wwan->ipc_imem, if_id); in ipc_wwan_link_open()
85 ipc_imem_sys_wwan_close(priv->ipc_wwan->ipc_imem, priv->if_id, in ipc_wwan_link_stop()
110 ret = ipc_imem_sys_wwan_transmit(ipc_wwan->ipc_imem, in ipc_wwan_link_transmit()
289 struct iosm_wwan *ipc_wwan_init(struct iosm_imem *ipc_imem, struct device *dev) in ipc_wwan_init() argument
298 ipc_wwan->ipc_imem = ipc_imem; in ipc_wwan_init()
Diosm_ipc_task_queue.h28 struct iosm_imem *ipc_imem; member
31 int (*func)(struct iosm_imem *ipc_imem, int arg, void *msg,
93 int (*func)(struct iosm_imem *ipc_imem, int arg,
Diosm_ipc_devlink.c240 struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem) in ipc_devlink_init() argument
249 ipc_imem->dev); in ipc_devlink_init()
251 dev_err(ipc_imem->dev, "devlink_alloc failed"); in ipc_devlink_init()
257 ipc_devlink->pcie = ipc_imem->pcie; in ipc_devlink_init()
258 ipc_devlink->dev = ipc_imem->dev; in ipc_devlink_init()
280 ipc_imem_channel_init(ipc_imem, IPC_CTYPE_CTRL, in ipc_devlink_init()
Diosm_ipc_port.h25 struct iosm_imem *ipc_imem; member
41 struct iosm_cdev *ipc_port_init(struct iosm_imem *ipc_imem,
Diosm_ipc_protocol_ops.h335 int ipc_protocol_msg_prep(struct iosm_imem *ipc_imem,
344 void ipc_protocol_msg_hp_update(struct iosm_imem *ipc_imem);
354 bool ipc_protocol_msg_process(struct iosm_imem *ipc_imem, int irq);
Diosm_ipc_protocol_ops.c35 void ipc_protocol_msg_hp_update(struct iosm_imem *ipc_imem) in ipc_protocol_msg_hp_update() argument
37 struct iosm_protocol *ipc_protocol = ipc_imem->ipc_protocol; in ipc_protocol_msg_hp_update()
173 bool ipc_protocol_msg_process(struct iosm_imem *ipc_imem, int irq) in ipc_protocol_msg_process() argument
175 struct iosm_protocol *ipc_protocol = ipc_imem->ipc_protocol; in ipc_protocol_msg_process()
506 int ipc_protocol_msg_prep(struct iosm_imem *ipc_imem, in ipc_protocol_msg_prep() argument
510 struct iosm_protocol *ipc_protocol = ipc_imem->ipc_protocol; in ipc_protocol_msg_prep()
Diosm_ipc_flash.c98 int ipc_flash_link_establish(struct iosm_imem *ipc_imem) in ipc_flash_link_establish() argument
104 ipc_imem->ipc_devlink->devlink_sio.channel = in ipc_flash_link_establish()
105 ipc_imem_sys_devlink_open(ipc_imem); in ipc_flash_link_establish()
107 if (!ipc_imem->ipc_devlink->devlink_sio.channel) in ipc_flash_link_establish()
110 if (ipc_imem_sys_devlink_read(ipc_imem->ipc_devlink, ler_data, in ipc_flash_link_establish()
120 ipc_imem_sys_devlink_close(ipc_imem->ipc_devlink); in ipc_flash_link_establish()
Diosm_ipc_pm.c300 struct iosm_imem *ipc_imem = ipc_protocol->imem; in ipc_pm_init() local
303 ipc_pm->pcie = ipc_imem->pcie; in ipc_pm_init()
304 ipc_pm->dev = ipc_imem->dev; in ipc_pm_init()
Diosm_ipc_wwan.h16 struct iosm_wwan *ipc_wwan_init(struct iosm_imem *ipc_imem, struct device *dev);
Diosm_ipc_protocol.h229 struct iosm_protocol *ipc_protocol_init(struct iosm_imem *ipc_imem);
Diosm_ipc_devlink.h199 struct iosm_devlink *ipc_devlink_init(struct iosm_imem *ipc_imem);
Diosm_ipc_flash.h223 int ipc_flash_link_establish(struct iosm_imem *ipc_imem);
Diosm_ipc_mux.h392 struct iosm_imem *ipc_imem);
Diosm_ipc_mux_codec.c13 static int ipc_mux_tq_cmd_send(struct iosm_imem *ipc_imem, int arg, void *msg, in ipc_mux_tq_cmd_send() argument
16 struct iosm_mux *ipc_mux = ipc_imem->mux; in ipc_mux_tq_cmd_send()
1481 static int ipc_mux_tq_ul_trigger_encode(struct iosm_imem *ipc_imem, int arg, in ipc_mux_tq_ul_trigger_encode() argument
1484 struct iosm_mux *ipc_mux = ipc_imem->mux; in ipc_mux_tq_ul_trigger_encode()