Home
last modified time | relevance | path

Searched full:ipa (Results 1 – 25 of 191) sorted by relevance

12345678

/linux/drivers/net/ipa/
H A Dipa_interrupt.c7 /* DOC: IPA Interrupts
9 * The IPA has an interrupt line distinct from the interrupt used by the GSI
11 * transfer completions), IPA interrupts are related to other events related
12 * to the IPA. Some of the IPA interrupts come from a microcontroller
13 * embedded in the IPA. Each IPA interrupt type can be both masked and
16 * Two of the IPA interrupts are initiated by the microcontroller. A third
17 * can be generated to signal the need for a wakeup/resume when an IPA
18 * endpoint has been suspended. There are other IPA event
43 struct ipa *ipa; global() member
52 struct ipa *ipa = interrupt->ipa; ipa_interrupt_suspend_clear_all() local
76 struct ipa *ipa = interrupt->ipa; ipa_interrupt_process() local
113 struct ipa *ipa = interrupt->ipa; ipa_isr_thread() local
158 ipa_interrupt_enabled_update(struct ipa * ipa) ipa_interrupt_enabled_update() argument
166 ipa_interrupt_enable(struct ipa * ipa,enum ipa_irq_id ipa_irq) ipa_interrupt_enable() argument
174 ipa_interrupt_disable(struct ipa * ipa,enum ipa_irq_id ipa_irq) ipa_interrupt_disable() argument
181 ipa_interrupt_irq_disable(struct ipa * ipa) ipa_interrupt_irq_disable() argument
186 ipa_interrupt_irq_enable(struct ipa * ipa) ipa_interrupt_irq_enable() argument
195 struct ipa *ipa = interrupt->ipa; ipa_interrupt_suspend_control() local
250 ipa_interrupt_config(struct ipa * ipa) ipa_interrupt_config() argument
310 ipa_interrupt_deconfig(struct ipa * ipa) ipa_interrupt_deconfig() argument
[all...]
H A Dipa_main.c20 #include "ipa.h"
39 * This driver supports the Qualcomm IP Accelerator (IPA), which is a
40 * networking component found in many Qualcomm SoCs. The IPA is connected
44 * The IPA is the conduit between the AP and the modem that carries network
48 * The IPA provides protocol checksum calculation, offloading this work
49 * from the AP. The IPA offers additional functionality, including routing,
55 * There are two distinct layers that implement the IPA hardware, and this
57 * interface (GSI) is an integral component of the IPA, providing a
58 * well-defined communication layer between the AP subsystem and the IPA
60 * between the AP and the IPA
111 ipa_setup(struct ipa * ipa) ipa_setup() argument
177 ipa_teardown(struct ipa * ipa) ipa_teardown() argument
196 ipa_hardware_config_bcr(struct ipa * ipa,const struct ipa_data * data) ipa_hardware_config_bcr() argument
210 ipa_hardware_config_tx(struct ipa * ipa) ipa_hardware_config_tx() argument
231 ipa_hardware_config_clkon(struct ipa * ipa) ipa_hardware_config_clkon() argument
258 ipa_hardware_config_comp(struct ipa * ipa) ipa_hardware_config_comp() argument
291 ipa_hardware_config_qsb(struct ipa * ipa,const struct ipa_data * data) ipa_hardware_config_qsb() argument
360 ipa_qtime_config(struct ipa * ipa) ipa_qtime_config() argument
410 ipa_hardware_config_counter(struct ipa * ipa) ipa_hardware_config_counter() argument
422 ipa_hardware_config_timing(struct ipa * ipa) ipa_hardware_config_timing() argument
430 ipa_hardware_config_hashing(struct ipa * ipa) ipa_hardware_config_hashing() argument
451 ipa_idle_indication_cfg(struct ipa * ipa,u32 enter_idle_debounce_thresh,bool const_non_idle_enable) ipa_idle_indication_cfg() argument
478 ipa_hardware_dcd_config(struct ipa * ipa) ipa_hardware_dcd_config() argument
484 ipa_hardware_dcd_deconfig(struct ipa * ipa) ipa_hardware_dcd_deconfig() argument
495 ipa_hardware_config(struct ipa * ipa,const struct ipa_data * data) ipa_hardware_config() argument
513 ipa_hardware_deconfig(struct ipa * ipa) ipa_hardware_deconfig() argument
526 ipa_config(struct ipa * ipa,const struct ipa_data * data) ipa_config() argument
576 ipa_deconfig(struct ipa * ipa) ipa_deconfig() argument
793 struct ipa *ipa; ipa_probe() local
941 struct ipa *ipa; ipa_remove() local
[all...]
H A Dipa_reg.h13 struct ipa;
16 * DOC: IPA Registers
18 * IPA registers are located within the "ipa-reg" address space defined by
22 * All IPA registers are 32 bits wide.
25 * instances of something. For example, each IPA endpoint has an set of
33 * Each version of IPA implements an array of ipa_reg structures indexed
36 * of IPA define all registers. The offset for a register is returned by
53 /* enum ipa_reg_id - IPA register IDs */
61 FILT_ROUT_HASH_EN, /* IPA v
[all...]
H A Dipa_interrupt.h13 struct ipa;
20 * @interrupt: IPA interrupt structure
23 * Note: The "TX" in the name is from the perspective of the IPA hardware.
33 * @interrupt: IPA interrupt structure
40 * ipa_interrupt_simulate_suspend() - Simulate TX_SUSPEND IPA interrupt
41 * @interrupt: IPA interrupt structure
51 * ipa_interrupt_enable() - Enable an IPA interrupt type
52 * @ipa: IPA pointer
53 * @ipa_irq: IPA interrup
[all...]
H A Dipa_table.h11 struct ipa;
15 * @ipa: IPA pointer
20 bool ipa_filtered_valid(struct ipa *ipa, u64 filtered);
24 * @ipa: IPA pointer
26 bool ipa_table_hash_support(struct ipa *ipa);
30 * @ipa
[all...]
H A Dipa_table.c16 #include "ipa.h"
25 * DOC: IPA Filter and Route Tables
27 * The IPA has tables defined in its local (IPA-resident) memory that define
35 * by all IPA hardware (IPA v4.2 doesn't support hashed tables).
38 * an object (such as a route or filter table) in IPA-resident memory must
52 * address of a filter rule in the memory following the bitmap. Until IPA
58 * removed starting at IPA v5.0. For IPA v
145 ipa_table_mem(struct ipa * ipa,bool filter,bool hashed,bool ipv6) ipa_table_mem() argument
162 ipa_table_hash_support(struct ipa * ipa) ipa_table_hash_support() argument
167 ipa_filtered_valid(struct ipa * ipa,u64 filtered) ipa_filtered_valid() argument
190 ipa_table_addr(struct ipa * ipa,bool filter_mask,u16 count) ipa_table_addr() argument
208 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_table_reset_add() local
234 ipa_filter_reset_table(struct ipa * ipa,bool hashed,bool ipv6,bool modem) ipa_filter_reset_table() argument
270 ipa_filter_reset(struct ipa * ipa,bool modem) ipa_filter_reset() argument
293 ipa_route_reset(struct ipa * ipa,bool modem) ipa_route_reset() argument
329 ipa_table_reset(struct ipa * ipa,bool modem) ipa_table_reset() argument
349 ipa_table_hash_flush(struct ipa * ipa) ipa_table_hash_flush() argument
388 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_table_init_add() local
454 ipa_table_setup(struct ipa * ipa) ipa_table_setup() argument
497 struct ipa *ipa = endpoint->ipa; ipa_filter_tuple_zero() local
523 ipa_filter_config(struct ipa * ipa,bool modem) ipa_filter_config() argument
543 ipa_route_id_modem(struct ipa * ipa,u32 route_id) ipa_route_id_modem() argument
555 ipa_route_tuple_zero(struct ipa * ipa,u32 route_id) ipa_route_tuple_zero() argument
582 ipa_route_config(struct ipa * ipa,bool modem) ipa_route_config() argument
595 ipa_table_config(struct ipa * ipa) ipa_table_config() argument
606 ipa_table_mem_valid(struct ipa * ipa,bool filter) ipa_table_mem_valid() argument
715 ipa_table_init(struct ipa * ipa) ipa_table_init() argument
764 ipa_table_exit(struct ipa * ipa) ipa_table_exit() argument
[all...]
H A Dipa_cmd.c15 #include "ipa.h"
23 * DOC: IPA Immediate Commands
25 * The AP command TX endpoint is used to issue immediate commands to the IPA.
26 * An immediate command is generally used to request the IPA do something
74 /* For IPA v4.0+, the pipeline clear options are encoded in the opcode */
79 __le16 flags; /* Unused/reserved prior to IPA v4.0 */
83 __le32 clear_options; /* Unused/reserved for IPA v4.0+ */
87 /* The next field is present for IPA v4.0+ */
89 /* The next field is not present for IPA v4.0+ */
92 /* The next field and its values are not present for IPA v
172 ipa_cmd_table_init_valid(struct ipa * ipa,const struct ipa_mem * mem,bool route) ipa_cmd_table_init_valid() argument
206 ipa_cmd_header_init_local_valid(struct ipa * ipa) ipa_cmd_header_init_local_valid() argument
256 ipa_cmd_register_write_offset_valid(struct ipa * ipa,const char * name,u32 offset) ipa_cmd_register_write_offset_valid() argument
289 ipa_cmd_register_write_valid(struct ipa * ipa) ipa_cmd_register_write_valid() argument
349 ipa_cmd_payload_alloc(struct ipa * ipa,dma_addr_t * addr) ipa_cmd_payload_alloc() argument
366 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_table_init_add() local
404 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_hdr_init_local_add() local
433 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_register_write_add() local
490 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_ip_packet_init_add() local
515 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_dma_shared_mem_add() local
555 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_ip_tag_status_add() local
573 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_transfer_add() local
588 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); ipa_cmd_pipeline_clear_add() local
617 ipa_cmd_pipeline_clear_wait(struct ipa * ipa) ipa_cmd_pipeline_clear_wait() argument
623 ipa_cmd_trans_alloc(struct ipa * ipa,u32 tre_count) ipa_cmd_trans_alloc() argument
637 ipa_cmd_init(struct ipa * ipa) ipa_cmd_init() argument
[all...]
H A Dipa_uc.c12 #include "ipa.h"
19 * DOC: The IPA embedded microcontroller
21 * The IPA incorporates a microcontroller that is able to do some additional
31 * A 128 byte block of structured memory within the IPA SRAM is used together
33 * AP and the IPA microcontroller. Each side writes data to the shared area
66 * A shared memory area at the base of IPA resident memory is used for
120 static struct ipa_uc_mem_area *ipa_uc_shared(struct ipa *ipa) in ipa_uc_shared() argument
122 const struct ipa_mem *mem = ipa_mem_find(ipa, IPA_MEM_UC_SHARED); in ipa_uc_shared()
123 u32 offset = ipa in ipa_uc_shared()
129 ipa_uc_event_handler(struct ipa * ipa) ipa_uc_event_handler() argument
143 ipa_uc_response_hdlr(struct ipa * ipa) ipa_uc_response_hdlr() argument
175 ipa_uc_interrupt_handler(struct ipa * ipa,enum ipa_irq_id irq_id) ipa_uc_interrupt_handler() argument
185 ipa_uc_config(struct ipa * ipa) ipa_uc_config() argument
194 ipa_uc_deconfig(struct ipa * ipa) ipa_uc_deconfig() argument
211 ipa_uc_power(struct ipa * ipa) ipa_uc_power() argument
232 send_uc_command(struct ipa * ipa,u32 command,u32 command_param) send_uc_command() argument
253 ipa_uc_panic_notifier(struct ipa * ipa) ipa_uc_panic_notifier() argument
[all...]
H A Dipa_uc.h9 struct ipa;
12 * ipa_uc_interrupt_handler() - Handler for microcontroller IPA interrupts
13 * @ipa: IPA pointer
14 * @irq_id: IPA interrupt ID
16 void ipa_uc_interrupt_handler(struct ipa *ipa, enum ipa_irq_id irq_id);
19 * ipa_uc_config() - Configure the IPA microcontroller subsystem
20 * @ipa: IPA pointe
[all...]
H A Dipa_modem.c18 #include "ipa.h"
38 * struct ipa_priv - IPA network device private data
39 * @ipa: IPA pointer
45 struct ipa *ipa; member
55 struct ipa *ipa = priv->ipa; in ipa_open() local
59 dev = ipa in ipa_open()
91 struct ipa *ipa = priv->ipa; ipa_stop() local
128 struct ipa *ipa = priv->ipa; ipa_start_xmit() local
301 ipa_modem_start(struct ipa * ipa) ipa_modem_start() argument
354 ipa_modem_stop(struct ipa * ipa) ipa_modem_stop() argument
395 ipa_modem_crashed(struct ipa * ipa) ipa_modem_crashed() argument
442 struct ipa *ipa = container_of(nb, struct ipa, nb); ipa_modem_notify() local
476 ipa_modem_config(struct ipa * ipa) ipa_modem_config() argument
491 ipa_modem_deconfig(struct ipa * ipa) ipa_modem_deconfig() argument
[all...]
H A Dipa_smp2p.c16 #include "ipa.h"
21 * DOC: IPA SMP2P communication with the modem
24 * the modem. The IPA driver uses this for two purposes: to enable the modem
26 * state of IPA power in the event of a crash.
30 * latter case, the modem uses an SMP2P interrupt to tell the AP IPA driver
33 * The modem is also able to inquire about the current state of IPA
38 * at that time records whether the AP has IPA power enabled.
45 * struct ipa_smp2p - IPA SMP2P information
46 * @ipa: IPA pointe
61 struct ipa *ipa; global() member
153 struct ipa *ipa = smp2p->ipa; ipa_smp2p_modem_setup_ready_isr() local
209 ipa_smp2p_power_release(struct ipa * ipa) ipa_smp2p_power_release() argument
223 ipa_smp2p_init(struct ipa * ipa,struct platform_device * pdev,bool modem_init) ipa_smp2p_init() argument
298 ipa_smp2p_exit(struct ipa * ipa) ipa_smp2p_exit() argument
313 ipa_smp2p_irq_disable_setup(struct ipa * ipa) ipa_smp2p_irq_disable_setup() argument
331 ipa_smp2p_notify_reset(struct ipa * ipa) ipa_smp2p_notify_reset() argument
[all...]
H A Dipa_smp2p.h13 struct ipa;
16 * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem
17 * @ipa: IPA pointer
23 int ipa_smp2p_init(struct ipa *ipa, struct platform_device *pdev,
28 * @ipa: IPA pointer
30 void ipa_smp2p_exit(struct ipa *ipa);
[all...]
H A Dipa_power.c15 #include "ipa.h"
23 * DOC: IPA Power Management
25 * The IPA hardware is enabled when the IPA core clock and all the
38 * struct ipa_power - IPA power management information
39 * @dev: IPA device pointer
40 * @core: IPA core clock
53 /* Initialize interconnects required for IPA operation */
94 /* Enable IPA power, enabling interconnects and the core clock */
95 static int ipa_power_enable(struct ipa *ip argument
115 ipa_power_disable(struct ipa * ipa) ipa_power_disable() argument
126 struct ipa *ipa = dev_get_drvdata(dev); ipa_runtime_suspend() local
141 struct ipa *ipa = dev_get_drvdata(dev); ipa_runtime_resume() local
159 struct ipa *ipa = dev_get_drvdata(dev); ipa_suspend() local
177 struct ipa *ipa = dev_get_drvdata(dev); ipa_resume() local
192 ipa_core_clock_rate(struct ipa * ipa) ipa_core_clock_rate() argument
220 ipa_power_retention(struct ipa * ipa,bool enable) ipa_power_retention() argument
[all...]
H A Dipa_cmd.h13 struct ipa;
17 * enum ipa_cmd_opcode: IPA immediate commands
23 * @IPA_CMD_HDR_INIT_LOCAL: Initialize IPA-local header memory
24 * @IPA_CMD_REGISTER_WRITE: Register write performed by IPA
26 * @IPA_CMD_DMA_SHARED_MEM: DMA command performed by IPA
47 * @ipa: - IPA pointer
48 * @mem: - IPA memory region descriptor
53 bool ipa_cmd_table_init_valid(struct ipa *ipa, cons
[all...]
H A Dipa.h25 * struct ipa - IPA information
27 * @version: IPA hardware version
28 * @dev: IPA device pointer
33 * @power: IPA power information
39 * @interrupt: IPA Interrupt information
42 * @reg_virt: Virtual address used for IPA register access
43 * @regs: IPA register definitions
44 * @mem_addr: DMA address of IPA-local memory space
45 * @mem_virt: Virtual address of IPA
73 struct ipa { global() struct
75 versionipa global() argument
80 smp2pipa global() argument
81 poweripa global() argument
89 interruptipa global() argument
101 memipa global() argument
123 endpointipa global() argument
124 channel_mapipa global() argument
125 name_mapipa global() argument
129 modem_stateipa global() argument
131 qmiipa global() argument
136 modem_netdevipa global() argument
[all...]
H A Dipa_data.h16 * DOC: IPA/GSI Configuration Data
19 * IPA and GSI resources to use for a given platform. This data is supplied
25 * Resources are data structures used internally by the IPA hardware. The
29 * Endpoint configuration data defines properties of both IPA endpoints and
31 * communication path between the IPA and a particular execution environment
36 * An endpoint is an IPA construct representing a single channel anywhere
37 * in the system. An IPA endpoint ID maps directly to an (EE, channel_id)
40 * added. IPA endpoint and GSI channel configuration data are defined
44 * are common to IPA and GSI (EE ID, channel ID, endpoint ID, and direction);
46 * the IPA endpoin
[all...]
H A Dipa_reg.c10 #include "ipa.h"
13 /* Is this register ID valid for the current IPA version? */
14 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_id_valid() argument
16 enum ipa_version version = ipa->version; in ipa_reg_id_valid()
102 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument
104 if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) in ipa_reg()
107 return reg(ipa->regs, reg_id); in ipa_reg()
136 int ipa_reg_init(struct ipa *ip argument
166 ipa_reg_exit(struct ipa * ipa) ipa_reg_exit() argument
[all...]
H A Dipa_gsi.c10 #include "ipa.h"
18 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_complete() local
20 ipa_endpoint_trans_complete(ipa->channel_map[trans->channel_id], trans); in ipa_gsi_trans_complete()
25 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_gsi_trans_release() local
27 ipa_endpoint_trans_release(ipa->channel_map[trans->channel_id], trans); in ipa_gsi_trans_release()
33 struct ipa *ip in ipa_gsi_channel_tx_queued() local
44 struct ipa *ipa = container_of(gsi, struct ipa, gsi); ipa_gsi_channel_tx_completed() local
[all...]
H A Dipa_version.h13 * @IPA_VERSION_3_0: IPA version 3.0/GSI version 1.0
14 * @IPA_VERSION_3_1: IPA version 3.1/GSI version 1.0
15 * @IPA_VERSION_3_5: IPA version 3.5/GSI version 1.2
16 * @IPA_VERSION_3_5_1: IPA version 3.5.1/GSI version 1.3
17 * @IPA_VERSION_4_0: IPA version 4.0/GSI version 2.0
18 * @IPA_VERSION_4_1: IPA version 4.1/GSI version 2.0
19 * @IPA_VERSION_4_2: IPA version 4.2/GSI version 2.2
20 * @IPA_VERSION_4_5: IPA version 4.5/GSI version 2.5
21 * @IPA_VERSION_4_7: IPA version 4.7/GSI version 2.7
22 * @IPA_VERSION_4_9: IPA versio
[all...]
H A Dipa_sysfs.c9 #include "ipa.h"
13 static const char *ipa_version_string(struct ipa *ipa) in ipa_version_string() argument
15 switch (ipa->version) { in ipa_version_string()
52 struct ipa *ipa = dev_get_drvdata(dev); in version_show() local
54 return sysfs_emit(buf, "%s\n", ipa_version_string(ipa)); in version_show()
68 static const char *ipa_offload_string(struct ipa *ipa) in ipa_offload_string() argument
70 return ipa in ipa_offload_string()
76 struct ipa *ipa = dev_get_drvdata(dev); rx_offload_show() local
86 struct ipa *ipa = dev_get_drvdata(dev); tx_offload_show() local
107 struct ipa *ipa = dev_get_drvdata(kobj_to_dev(kobj)); ipa_endpoint_id_is_visible() local
124 struct ipa *ipa = dev_get_drvdata(dev); endpoint_id_attr_show() local
[all...]
H A Dipa_power.h13 struct ipa;
16 /* IPA device power management function block */
20 * ipa_core_clock_rate() - Return the current IPA core clock rate
21 * @ipa: IPA structure
25 u32 ipa_core_clock_rate(struct ipa *ipa);
29 * @ipa: IPA pointer
32 void ipa_power_retention(struct ipa *ip
[all...]
H A Dgsi_reg.h47 INTER_EE_SRC_CH_IRQ_MSK, /* IPA v3.5+ */
48 INTER_EE_SRC_EV_CH_IRQ_MSK, /* IPA v3.5+ */
77 HW_PARAM_2, /* IPA v3.5.1+ */
78 HW_PARAM_4, /* IPA v5.0+ */
109 CHTYPE_PROTOCOL_MSB, /* IPA v4.5-4.11 */
110 ERINDEX, /* Not IPA v5.0+ */
132 CH_ERINDEX, /* IPA v5.0+ */
140 USE_ESCAPE_BUF_ONLY, /* IPA v4.0-4.2 */
141 PREFETCH_MODE, /* IPA v4.5+ */
142 EMPTY_LVL_THRSHOLD, /* IPA v
[all...]
H A Dipa_modem.h12 struct ipa;
14 int ipa_modem_start(struct ipa *ipa);
15 int ipa_modem_stop(struct ipa *ipa);
22 int ipa_modem_config(struct ipa *ipa);
23 void ipa_modem_deconfig(struct ipa *ipa);
/linux/Documentation/ABI/testing/
H A Dsysfs-devices-platform-soc-ipa1 What: /sys/devices/platform/soc@X/XXXXXXX.ipa/
6 The /sys/devices/platform/soc@X/XXXXXXX.ipa/ directory
8 an IPA device. The X values could vary, but are typically
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
26 attributes describing features implemented by the IPA
[all...]
/linux/Documentation/devicetree/bindings/net/
H A Dqcom,ipa.yaml4 $id: http://devicetree.org/schemas/net/qcom,ipa.yaml#
7 title: Qualcomm IP Accelerator (IPA)
13 This binding describes the Qualcomm IPA. The IPA is capable of offloading
17 The IPA sits between multiple independent "execution environments,"
18 including the Application Processor (AP) and the modem. The IPA presents
20 The GSI is an integral part of the IPA, but it is logically isolated
40 | IPA |
48 - qcom,msm8998-ipa
49 - qcom,sc7180-ipa
[all...]

12345678