Home
last modified time | relevance | path

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

12345

/linux-6.6.21/drivers/net/ipa/
Dipa_main.c112 int ipa_setup(struct ipa *ipa) in ipa_setup() argument
116 struct device *dev = &ipa->pdev->dev; in ipa_setup()
119 ret = gsi_setup(&ipa->gsi); in ipa_setup()
123 ret = ipa_power_setup(ipa); in ipa_setup()
127 ipa_endpoint_setup(ipa); in ipa_setup()
132 command_endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX]; in ipa_setup()
137 ret = ipa_mem_setup(ipa); /* No matching teardown required */ in ipa_setup()
141 ret = ipa_table_setup(ipa); /* No matching teardown required */ in ipa_setup()
148 exception_endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX]; in ipa_setup()
153 ipa_endpoint_default_route_set(ipa, exception_endpoint->endpoint_id); in ipa_setup()
[all …]
Dipa_table.c148 ipa_table_mem(struct ipa *ipa, bool filter, bool hashed, bool ipv6) in ipa_table_mem() argument
161 return ipa_mem_find(ipa, mem_id); in ipa_table_mem()
164 bool ipa_filtered_valid(struct ipa *ipa, u64 filtered) in ipa_filtered_valid() argument
166 struct device *dev = &ipa->pdev->dev; in ipa_filtered_valid()
176 if (count > ipa->filter_count) { in ipa_filtered_valid()
178 count, ipa->filter_count); in ipa_filtered_valid()
187 static dma_addr_t ipa_table_addr(struct ipa *ipa, bool filter_mask, u16 count) in ipa_table_addr() argument
194 WARN_ON(count > max_t(u32, ipa->filter_count, ipa->route_count)); in ipa_table_addr()
199 return ipa->table_addr + skip * sizeof(*ipa->table_virt); in ipa_table_addr()
205 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_table_reset_add() local
[all …]
Dipa_mem.c29 const struct ipa_mem *ipa_mem_find(struct ipa *ipa, enum ipa_mem_id mem_id) in ipa_mem_find() argument
33 for (i = 0; i < ipa->mem_count; i++) { in ipa_mem_find()
34 const struct ipa_mem *mem = &ipa->mem[i]; in ipa_mem_find()
47 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_mem_zero_region_add() local
48 const struct ipa_mem *mem = ipa_mem_find(ipa, mem_id); in ipa_mem_zero_region_add()
49 dma_addr_t addr = ipa->zero_addr; in ipa_mem_zero_region_add()
75 int ipa_mem_setup(struct ipa *ipa) in ipa_mem_setup() argument
77 dma_addr_t addr = ipa->zero_addr; in ipa_mem_setup()
88 trans = ipa_cmd_trans_alloc(ipa, 4); in ipa_mem_setup()
90 dev_err(&ipa->pdev->dev, "no transaction for memory setup\n"); in ipa_mem_setup()
[all …]
Dipa_modem.c45 struct ipa *ipa; member
53 struct ipa *ipa = priv->ipa; in ipa_open() local
57 dev = &ipa->pdev->dev; in ipa_open()
62 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
66 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_open()
78 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
89 struct ipa *ipa = priv->ipa; in ipa_stop() local
93 dev = &ipa->pdev->dev; in ipa_stop()
100 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_stop()
101 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_stop()
[all …]
Dipa_uc.c118 static struct ipa_uc_mem_area *ipa_uc_shared(struct ipa *ipa) in ipa_uc_shared() argument
120 const struct ipa_mem *mem = ipa_mem_find(ipa, IPA_MEM_UC_SHARED); in ipa_uc_shared()
121 u32 offset = ipa->mem_offset + mem->offset; in ipa_uc_shared()
123 return ipa->mem_virt + offset; in ipa_uc_shared()
127 static void ipa_uc_event_handler(struct ipa *ipa) in ipa_uc_event_handler() argument
129 struct ipa_uc_mem_area *shared = ipa_uc_shared(ipa); in ipa_uc_event_handler()
130 struct device *dev = &ipa->pdev->dev; in ipa_uc_event_handler()
141 static void ipa_uc_response_hdlr(struct ipa *ipa) in ipa_uc_response_hdlr() argument
143 struct ipa_uc_mem_area *shared = ipa_uc_shared(ipa); in ipa_uc_response_hdlr()
144 struct device *dev = &ipa->pdev->dev; in ipa_uc_response_hdlr()
[all …]
Dipa_interrupt.c41 struct ipa *ipa; member
49 struct ipa *ipa = interrupt->ipa; in ipa_interrupt_process() local
54 reg = ipa_reg(ipa, IPA_IRQ_CLR); in ipa_interrupt_process()
63 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process()
64 ipa_uc_interrupt_handler(ipa, irq_id); in ipa_interrupt_process()
73 ipa_power_suspend_handler(ipa, irq_id); in ipa_interrupt_process()
77 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process()
86 struct ipa *ipa = interrupt->ipa; in ipa_isr_thread() local
95 dev = &ipa->pdev->dev; in ipa_isr_thread()
104 reg = ipa_reg(ipa, IPA_IRQ_STTS); in ipa_isr_thread()
[all …]
Dipa_endpoint.c125 static u32 ipa_status_extract(struct ipa *ipa, const void *data, in ipa_status_extract() argument
128 enum ipa_version version = ipa->version; in ipa_status_extract()
231 static bool ipa_endpoint_data_valid_one(struct ipa *ipa, u32 count, in ipa_endpoint_data_valid_one() argument
236 struct device *dev = &ipa->pdev->dev; in ipa_endpoint_data_valid_one()
305 reg = ipa_reg(ipa, ENDP_INIT_AGGR); in ipa_endpoint_data_valid_one()
319 if (ipa->version >= IPA_VERSION_4_5) { in ipa_endpoint_data_valid_one()
387 static u32 ipa_endpoint_max(struct ipa *ipa, u32 count, in ipa_endpoint_max() argument
391 struct device *dev = &ipa->pdev->dev; in ipa_endpoint_max()
421 if (!ipa_endpoint_data_valid_one(ipa, count, data, dp)) in ipa_endpoint_max()
433 struct gsi *gsi = &endpoint->ipa->gsi; in ipa_endpoint_trans_alloc()
[all …]
Dipa_power.c115 static int ipa_power_enable(struct ipa *ipa) in ipa_power_enable() argument
117 struct ipa_power *power = ipa->power; in ipa_power_enable()
135 static void ipa_power_disable(struct ipa *ipa) in ipa_power_disable() argument
137 struct ipa_power *power = ipa->power; in ipa_power_disable()
146 struct ipa *ipa = dev_get_drvdata(dev); in ipa_runtime_suspend() local
149 if (ipa->setup_complete) { in ipa_runtime_suspend()
150 __clear_bit(IPA_POWER_FLAG_RESUMED, ipa->power->flags); in ipa_runtime_suspend()
151 ipa_endpoint_suspend(ipa); in ipa_runtime_suspend()
152 gsi_suspend(&ipa->gsi); in ipa_runtime_suspend()
155 ipa_power_disable(ipa); in ipa_runtime_suspend()
[all …]
Dipa_endpoint.h19 struct ipa;
153 struct ipa *ipa; member
172 void ipa_endpoint_modem_hol_block_clear_all(struct ipa *ipa);
174 void ipa_endpoint_modem_pause_all(struct ipa *ipa, bool enable);
176 int ipa_endpoint_modem_exception_reset_all(struct ipa *ipa);
186 void ipa_endpoint_suspend(struct ipa *ipa);
187 void ipa_endpoint_resume(struct ipa *ipa);
189 void ipa_endpoint_setup(struct ipa *ipa);
190 void ipa_endpoint_teardown(struct ipa *ipa);
192 int ipa_endpoint_config(struct ipa *ipa);
[all …]
Dipa_cmd.c171 bool ipa_cmd_table_init_valid(struct ipa *ipa, const struct ipa_mem *mem, in ipa_cmd_table_init_valid() argument
177 struct device *dev = &ipa->pdev->dev; in ipa_cmd_table_init_valid()
180 size = route ? ipa->route_count : ipa->filter_count + 1; in ipa_cmd_table_init_valid()
193 ipa->mem_offset > offset_max - mem->offset) { in ipa_cmd_table_init_valid()
196 ipa->mem_offset, mem->offset, offset_max); in ipa_cmd_table_init_valid()
205 static bool ipa_cmd_header_init_local_valid(struct ipa *ipa) in ipa_cmd_header_init_local_valid() argument
207 struct device *dev = &ipa->pdev->dev; in ipa_cmd_header_init_local_valid()
225 mem = ipa_mem_find(ipa, IPA_MEM_MODEM_HEADER); in ipa_cmd_header_init_local_valid()
230 if (offset > offset_max || ipa->mem_offset > offset_max - offset) { in ipa_cmd_header_init_local_valid()
233 ipa->mem_offset, offset, offset_max); in ipa_cmd_header_init_local_valid()
[all …]
Dipa_table.h11 struct ipa;
20 bool ipa_filtered_valid(struct ipa *ipa, u64 filtered);
26 static inline bool ipa_table_hash_support(struct ipa *ipa) in ipa_table_hash_support() argument
28 return ipa->version != IPA_VERSION_4_2; in ipa_table_hash_support()
36 void ipa_table_reset(struct ipa *ipa, bool modem);
42 int ipa_table_hash_flush(struct ipa *ipa);
50 int ipa_table_setup(struct ipa *ipa);
58 void ipa_table_config(struct ipa *ipa);
64 int ipa_table_init(struct ipa *ipa);
70 void ipa_table_exit(struct ipa *ipa);
[all …]
Dipa_qmi.c86 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete() local
99 dev_err(&ipa->pdev->dev, in ipa_server_init_complete()
128 struct ipa *ipa; in ipa_qmi_ready() local
148 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready()
149 ret = ipa_modem_start(ipa); in ipa_qmi_ready()
151 dev_err(&ipa->pdev->dev, "error %d starting modem\n", ret); in ipa_qmi_ready()
186 struct ipa *ipa; in ipa_server_indication_register() local
190 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_indication_register()
202 dev_err(&ipa->pdev->dev, in ipa_server_indication_register()
215 struct ipa *ipa; in ipa_server_driver_init_complete() local
[all …]
Dipa_power.h11 struct ipa;
24 u32 ipa_core_clock_rate(struct ipa *ipa);
30 void ipa_power_modem_queue_stop(struct ipa *ipa);
36 void ipa_power_modem_queue_wake(struct ipa *ipa);
42 void ipa_power_modem_queue_active(struct ipa *ipa);
49 void ipa_power_retention(struct ipa *ipa, bool enable);
60 void ipa_power_suspend_handler(struct ipa *ipa, enum ipa_irq_id irq_id);
68 int ipa_power_setup(struct ipa *ipa);
74 void ipa_power_teardown(struct ipa *ipa);
Dipa_resource.c29 static bool ipa_resource_limits_valid(struct ipa *ipa, in ipa_resource_limits_valid() argument
72 ipa_resource_config_common(struct ipa *ipa, u32 resource_type, in ipa_resource_config_common() argument
86 iowrite32(val, ipa->reg_virt + reg_n_offset(reg, resource_type)); in ipa_resource_config_common()
89 static void ipa_resource_config_src(struct ipa *ipa, u32 resource_type, in ipa_resource_config_src() argument
99 reg = ipa_reg(ipa, SRC_RSRC_GRP_01_RSRC_TYPE); in ipa_resource_config_src()
101 ipa_resource_config_common(ipa, resource_type, reg, in ipa_resource_config_src()
106 reg = ipa_reg(ipa, SRC_RSRC_GRP_23_RSRC_TYPE); in ipa_resource_config_src()
108 ipa_resource_config_common(ipa, resource_type, reg, in ipa_resource_config_src()
113 reg = ipa_reg(ipa, SRC_RSRC_GRP_45_RSRC_TYPE); in ipa_resource_config_src()
115 ipa_resource_config_common(ipa, resource_type, reg, in ipa_resource_config_src()
[all …]
Dipa_smp2p.c61 struct ipa *ipa; member
94 dev = &smp2p->ipa->pdev->dev; in ipa_smp2p_notify()
130 ipa_uc_panic_notifier(smp2p->ipa); in ipa_smp2p_panic_notifier()
159 if (smp2p->ipa->setup_complete) in ipa_smp2p_modem_setup_ready_isr()
163 dev = &smp2p->ipa->pdev->dev; in ipa_smp2p_modem_setup_ready_isr()
171 ret = ipa_setup(smp2p->ipa); in ipa_smp2p_modem_setup_ready_isr()
185 struct device *dev = &smp2p->ipa->pdev->dev; in ipa_smp2p_irq_init()
189 ret = platform_get_irq_byname(smp2p->ipa->pdev, name); in ipa_smp2p_irq_init()
209 static void ipa_smp2p_power_release(struct ipa *ipa) in ipa_smp2p_power_release() argument
211 struct device *dev = &ipa->pdev->dev; in ipa_smp2p_power_release()
[all …]
Dipa_mem.h9 struct ipa;
94 const struct ipa_mem *ipa_mem_find(struct ipa *ipa, enum ipa_mem_id mem_id);
96 int ipa_mem_config(struct ipa *ipa);
97 void ipa_mem_deconfig(struct ipa *ipa);
99 int ipa_mem_setup(struct ipa *ipa); /* No ipa_mem_teardown() needed */
101 int ipa_mem_zero_modem(struct ipa *ipa);
103 int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data);
104 void ipa_mem_exit(struct ipa *ipa);
Dipa_gsi.c17 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_complete() local
19 ipa_endpoint_trans_complete(ipa->channel_map[trans->channel_id], trans); in ipa_gsi_trans_complete()
24 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_release() local
26 ipa_endpoint_trans_release(ipa->channel_map[trans->channel_id], trans); in ipa_gsi_trans_release()
32 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_queued() local
35 endpoint = ipa->channel_map[channel_id]; in ipa_gsi_channel_tx_queued()
43 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_completed() local
46 endpoint = ipa->channel_map[channel_id]; in ipa_gsi_channel_tx_completed()
Dipa_sysfs.c14 static const char *ipa_version_string(struct ipa *ipa) in ipa_version_string() argument
16 switch (ipa->version) { in ipa_version_string()
49 struct ipa *ipa = dev_get_drvdata(dev); in version_show() local
51 return sysfs_emit(buf, "%s\n", ipa_version_string(ipa)); in version_show()
65 static const char *ipa_offload_string(struct ipa *ipa) in ipa_offload_string() argument
67 return ipa->version < IPA_VERSION_4_5 ? "MAPv4" : "MAPv5"; in ipa_offload_string()
73 struct ipa *ipa = dev_get_drvdata(dev); in rx_offload_show() local
75 return sysfs_emit(buf, "%s\n", ipa_offload_string(ipa)); in rx_offload_show()
83 struct ipa *ipa = dev_get_drvdata(dev); in tx_offload_show() local
85 return sysfs_emit(buf, "%s\n", ipa_offload_string(ipa)); in tx_offload_show()
[all …]
Dipa_reg.c13 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_id_valid() argument
15 enum ipa_version version = ipa->version; in ipa_reg_id_valid()
101 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument
103 if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) in ipa_reg()
106 return reg(ipa->regs, reg_id); in ipa_reg()
133 int ipa_reg_init(struct ipa *ipa) in ipa_reg_init() argument
135 struct device *dev = &ipa->pdev->dev; in ipa_reg_init()
139 regs = ipa_regs(ipa->version); in ipa_reg_init()
147 res = platform_get_resource_byname(ipa->pdev, IORESOURCE_MEM, in ipa_reg_init()
154 ipa->reg_virt = ioremap(res->start, resource_size(res)); in ipa_reg_init()
[all …]
Dipa_uc.h9 struct ipa;
17 void ipa_uc_interrupt_handler(struct ipa *ipa, enum ipa_irq_id irq_id);
23 void ipa_uc_config(struct ipa *ipa);
29 void ipa_uc_deconfig(struct ipa *ipa);
43 void ipa_uc_power(struct ipa *ipa);
52 void ipa_uc_panic_notifier(struct ipa *ipa);
Dipa_interrupt.h12 struct ipa;
61 void ipa_interrupt_enable(struct ipa *ipa, enum ipa_irq_id ipa_irq);
68 void ipa_interrupt_disable(struct ipa *ipa, enum ipa_irq_id ipa_irq);
76 void ipa_interrupt_irq_enable(struct ipa *ipa);
84 void ipa_interrupt_irq_disable(struct ipa *ipa);
92 struct ipa_interrupt *ipa_interrupt_config(struct ipa *ipa);
Dipa_smp2p.h11 struct ipa;
21 int ipa_smp2p_init(struct ipa *ipa, bool modem_init);
27 void ipa_smp2p_exit(struct ipa *ipa);
35 void ipa_smp2p_irq_disable_setup(struct ipa *ipa);
45 void ipa_smp2p_notify_reset(struct ipa *ipa);
Dipa_modem.h9 struct ipa;
13 int ipa_modem_start(struct ipa *ipa);
14 int ipa_modem_stop(struct ipa *ipa);
21 int ipa_modem_config(struct ipa *ipa);
22 void ipa_modem_deconfig(struct ipa *ipa);
Dipa_cmd.h15 struct ipa;
57 bool ipa_cmd_table_init_valid(struct ipa *ipa, const struct ipa_mem *mem,
66 bool ipa_cmd_data_valid(struct ipa *ipa);
153 void ipa_cmd_pipeline_clear_wait(struct ipa *ipa);
163 struct gsi_trans *ipa_cmd_trans_alloc(struct ipa *ipa, u32 tre_count);
173 int ipa_cmd_init(struct ipa *ipa);
/linux-6.6.21/Documentation/ABI/testing/
Dsysfs-devices-platform-soc-ipa1 What: /sys/devices/platform/soc@X/XXXXXXX.ipa/
6 The /sys/devices/platform/soc@X/XXXXXXX.ipa/ directory
9 "soc@0/1e40000.ipa".
11 What: .../XXXXXXX.ipa/version
16 The .../XXXXXXX.ipa/version file contains the IPA hardware
20 What: .../XXXXXXX.ipa/feature/
25 The .../XXXXXXX.ipa/feature/ directory contains a set of
29 What: .../XXXXXXX.ipa/feature/rx_offload
34 The .../XXXXXXX.ipa/feature/rx_offload file contains a
39 What: .../XXXXXXX.ipa/feature/tx_offload
[all …]

12345