| /linux/drivers/net/ipa/ |
| H A D | ipa_reg.h | 13 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 v4.2 */ 62 FILT_ROUT_HASH_FLUSH, /* Not IPA v4.2 nor IPA v5.0+ */ [all …]
|
| H A D | ipa_interrupt.h | 13 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 interrupt ID 55 void ipa_interrupt_enable(struct ipa *ipa, enum ipa_irq_id ipa_irq); [all …]
|
| H A D | ipa_endpoint.c | 16 #include "ipa.h" 40 /** enum ipa_status_opcode - IPA status opcode field hardware values */ 51 /** enum ipa_status_exception - IPA status exception field hardware values */ 67 /** enum ipa_status_mask - IPA status mask field bitmask hardware values */ 87 /* Special IPA filter/router rule field value indicating "rule miss" */ 90 /** The IPA status nat_type field uses enum ipa_nat_type hardware values */ 92 /* enum ipa_status_field_id - IPA packet status structure field identifiers */ 124 /* Size in bytes of an IPA packet status structure */ 127 /* IPA status structure decoder; looks up field values for a structure */ 128 static u32 ipa_status_extract(struct ipa *ipa, const void *data, in ipa_status_extract() argument [all …]
|
| H A D | ipa_table.h | 11 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: IPA pointer 33 void ipa_table_reset(struct ipa *ipa, bool modem); 37 * @ipa: IPA pointer 39 int ipa_table_hash_flush(struct ipa *ipa); 43 * @ipa: IPA pointer [all …]
|
| H A D | ipa_table.c | 16 #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 v5.0+, the endpoint bitmap 60 * bitmap, endpoint 1 has a filter rule. Older versions of IPA represent 72 * endpoints they "own" directly. Currently the AP does not use the IPA 76 * bitmap as defined prior to IPA v5.0. [all …]
|
| H A D | ipa_cmd.c | 15 #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 v4.0+ */ [all …]
|
| H A D | ipa_uc.h | 9 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 pointer 22 void ipa_uc_config(struct ipa *ipa); 26 * @ipa: IPA pointer 28 void ipa_uc_deconfig(struct ipa *ipa); [all …]
|
| H A D | ipa_qmi.c | 11 #include "ipa.h" 24 * complete, the AP and modem may begin IPA operation. This occurs 25 * only when the AP IPA driver, modem IPA driver, and IPA microcontroller 32 * contains a success result, the AP knows the modem IPA driver is ready. 34 * The modem is responsible for loading firmware on the IPA microcontroller. 49 * - Whenever the AP learns the modem has booted and its IPA QMI service 52 * - On the initial boot, the modem sets up the IPA microcontroller, and 82 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete() local 95 dev_err(ipa->dev, in ipa_server_init_complete() 114 * We know everything (else) is ready when we know the IPA driver on [all …]
|
| H A D | ipa_mem.h | 13 struct ipa; 17 * DOC: IPA Local Memory 19 * The IPA has a block of shared memory, divided into regions used for 23 * the "ipa-shared" memory range) and size found in the IPA_SHARED_MEM_SIZE 29 * of canaries for all IPA hardware versions. Still, the number used is 48 /* IPA-resident memory region ids */ 66 IPA_MEM_PDN_CONFIG, /* 0/2 canaries (IPA v4.0+) */ 67 IPA_MEM_STATS_QUOTA_MODEM, /* 2/4 canaries (IPA v4.0+) */ 68 IPA_MEM_STATS_QUOTA_AP, /* 0 canaries, optional (IPA v4.0+) */ 69 IPA_MEM_STATS_TETHERING, /* 0 canaries, optional (IPA v4.0+) */ [all …]
|
| H A D | ipa_endpoint.h | 19 struct ipa; 70 * With each packet it transfers, the IPA hardware can perform certain 99 * struct ipa_endpoint_config - IPA endpoint hardware configuration 138 * struct ipa_endpoint - IPA endpoint information 139 * @ipa: IPA pointer 142 * @endpoint_id: IPA endpoint number 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); [all …]
|
| H A D | ipa_resource.c | 9 #include "ipa.h" 15 * DOC: IPA Resources 17 * The IPA manages a set of resources internally for various purposes. 18 * A given IPA version has a fixed number of resource types, and a fixed 22 * Each version of IPA also has some number of resource groups. Each 28 static bool ipa_resource_limits_valid(struct ipa *ipa, in ipa_resource_limits_valid() argument 71 ipa_resource_config_common(struct ipa *ipa, u32 resource_type, in ipa_resource_config_common() argument 85 iowrite32(val, ipa->reg_virt + reg_n_offset(reg, resource_type)); in ipa_resource_config_common() 88 static void ipa_resource_config_src(struct ipa *ipa, u32 resource_type, in ipa_resource_config_src() argument 98 reg = ipa_reg(ipa, SRC_RSRC_GRP_01_RSRC_TYPE); in ipa_resource_config_src() [all …]
|
| H A D | ipa_power.c | 15 #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 *ipa) in ipa_power_enable() argument 97 struct ipa_power *power = ipa->power; in ipa_power_enable() [all …]
|
| H A D | ipa_cmd.h | 13 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, const struct ipa_mem *mem, 58 * @channel: AP->IPA command TX GSI channel pointer 67 * @channel: AP->IPA command TX GSI channel pointer [all …]
|
| H A D | ipa_smp2p.h | 13 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); 34 * @ipa: IPA pointer 36 * Disable the "ipa-setup-ready" interrupt from the modem. 38 void ipa_smp2p_irq_disable_setup(struct ipa *ipa); 42 * @ipa: IPA pointer [all …]
|
| H A D | ipa.h | 25 * 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-local memory space 46 * @mem_offset: Offset from @mem_virt used for access to IPA memory [all …]
|
| H A D | ipa_reg.c | 10 #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 *ipa, struct platform_device *pdev) in ipa_reg_init() argument 142 regs = ipa_regs(ipa->version); in ipa_reg_init() 149 /* Setup IPA register memory */ in ipa_reg_init() [all …]
|
| H A D | ipa_gsi.c | 10 #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 *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_queued() local 36 endpoint = ipa->channel_map[channel_id]; in ipa_gsi_channel_tx_queued() 44 struct ipa *ipa = container_of(gsi, struct ipa, gsi); in ipa_gsi_channel_tx_completed() local 47 endpoint = ipa->channel_map[channel_id]; in ipa_gsi_channel_tx_completed()
|
| H A D | ipa_sysfs.c | 9 #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->version < IPA_VERSION_4_5 ? "MAPv4" : "MAPv5"; in ipa_offload_string() 76 struct ipa *ipa = dev_get_drvdata(dev); in rx_offload_show() local 78 return sysfs_emit(buf, "%s\n", ipa_offload_string(ipa)); in rx_offload_show() 86 struct ipa *ipa = dev_get_drvdata(dev); in tx_offload_show() local [all …]
|
| H A D | ipa_version.h | 13 * @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 version 4.9/GSI version 2.9 [all …]
|
| H A D | ipa_power.h | 13 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 *ipa, bool enable); 35 * ipa_power_init() - Initialize IPA power management 36 * @dev: IPA device 46 * @power: IPA power pointer
|
| H A D | gsi_reg.h | 47 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 v4.5+ */ [all …]
|
| H A D | ipa_qmi.h | 14 struct ipa; 17 * struct ipa_qmi - QMI state associated with an IPA 46 * @ipa: IPA pointer 53 * IPA hardware until this handshake is complete. 58 int ipa_qmi_setup(struct ipa *ipa); 61 * ipa_qmi_teardown() - Tear down IPA QMI handles 62 * @ipa: IPA pointer 64 void ipa_qmi_teardown(struct ipa *ipa);
|
| H A D | ipa_modem.h | 12 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 D | sysfs-devices-platform-soc-ipa | 1 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 29 What: .../XXXXXXX.ipa/feature/rx_offload [all …]
|
| /linux/arch/arm64/kvm/ |
| H A D | trace_arm.h | 56 unsigned long long ipa), 57 TP_ARGS(vcpu_pc, hsr, hxfar, ipa), 63 __field( unsigned long long, ipa ) 70 __entry->ipa = ipa; 73 TP_printk("ipa %#llx, hsr %#08lx, hxfar %#08lx, pc %#016lx", 74 __entry->ipa, __entry->hsr, 79 TP_PROTO(unsigned long ipa), 80 TP_ARGS(ipa), 83 __field( unsigned long, ipa ) 87 __entry->ipa = ipa; [all …]
|