/Linux-v6.1/drivers/net/ipa/ |
D | ipa_main.c | 95 int ipa_setup(struct ipa *ipa) in ipa_setup() argument 99 struct device *dev = &ipa->pdev->dev; in ipa_setup() 102 ret = gsi_setup(&ipa->gsi); in ipa_setup() 106 ret = ipa_power_setup(ipa); in ipa_setup() 110 ipa_endpoint_setup(ipa); in ipa_setup() 115 command_endpoint = ipa->name_map[IPA_ENDPOINT_AP_COMMAND_TX]; in ipa_setup() 120 ret = ipa_mem_setup(ipa); /* No matching teardown required */ in ipa_setup() 124 ret = ipa_table_setup(ipa); /* No matching teardown required */ in ipa_setup() 131 exception_endpoint = ipa->name_map[IPA_ENDPOINT_AP_LAN_RX]; in ipa_setup() 136 ipa_endpoint_default_route_set(ipa, exception_endpoint->endpoint_id); in ipa_setup() [all …]
|
D | ipa_mem.c | 29 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 …]
|
D | ipa_modem.c | 45 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 …]
|
D | ipa_table.c | 149 ipa_table_valid_one(struct ipa *ipa, enum ipa_mem_id mem_id, bool route) in ipa_table_valid_one() argument 151 const struct ipa_mem *mem = ipa_mem_find(ipa, mem_id); in ipa_table_valid_one() 152 struct device *dev = &ipa->pdev->dev; in ipa_table_valid_one() 160 if (!ipa_cmd_table_valid(ipa, mem, route)) in ipa_table_valid_one() 168 if (ipa_table_hash_support(ipa) && !mem->size) in ipa_table_valid_one() 178 bool ipa_table_valid(struct ipa *ipa) in ipa_table_valid() argument 182 valid = ipa_table_valid_one(ipa, IPA_MEM_V4_FILTER, false); in ipa_table_valid() 183 valid = valid && ipa_table_valid_one(ipa, IPA_MEM_V6_FILTER, false); in ipa_table_valid() 184 valid = valid && ipa_table_valid_one(ipa, IPA_MEM_V4_ROUTE, true); in ipa_table_valid() 185 valid = valid && ipa_table_valid_one(ipa, IPA_MEM_V6_ROUTE, true); in ipa_table_valid() [all …]
|
D | ipa_uc.c | 118 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, enum ipa_irq_id irq_id) 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, enum ipa_irq_id irq_id) 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 …]
|
D | ipa_endpoint.c | 91 static bool ipa_endpoint_data_valid_one(struct ipa *ipa, u32 count, in ipa_endpoint_data_valid_one() argument 96 struct device *dev = &ipa->pdev->dev; in ipa_endpoint_data_valid_one() 165 reg = ipa_reg(ipa, ENDP_INIT_AGGR); in ipa_endpoint_data_valid_one() 179 if (ipa->version >= IPA_VERSION_4_5) { in ipa_endpoint_data_valid_one() 246 static bool ipa_endpoint_data_valid(struct ipa *ipa, u32 count, in ipa_endpoint_data_valid() argument 250 struct device *dev = &ipa->pdev->dev; in ipa_endpoint_data_valid() 278 if (!ipa_endpoint_data_valid_one(ipa, count, data, dp)) in ipa_endpoint_data_valid() 288 struct gsi *gsi = &endpoint->ipa->gsi; in ipa_endpoint_trans_alloc() 304 struct ipa *ipa = endpoint->ipa; in ipa_endpoint_init_ctrl() local 313 WARN_ON(ipa->version >= IPA_VERSION_4_2); in ipa_endpoint_init_ctrl() [all …]
|
D | ipa_interrupt.c | 39 struct ipa *ipa; member 55 struct ipa *ipa = interrupt->ipa; in ipa_interrupt_process() local 63 reg = ipa_reg(ipa, IPA_IRQ_CLR); in ipa_interrupt_process() 66 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process() 69 interrupt->handler[irq_id](interrupt->ipa, irq_id); in ipa_interrupt_process() 76 iowrite32(mask, ipa->reg_virt + offset); in ipa_interrupt_process() 83 struct ipa *ipa = interrupt->ipa; in ipa_isr_thread() local 92 dev = &ipa->pdev->dev; in ipa_isr_thread() 101 reg = ipa_reg(ipa, IPA_IRQ_STTS); in ipa_isr_thread() 103 pending = ioread32(ipa->reg_virt + offset); in ipa_isr_thread() [all …]
|
D | ipa_endpoint.h | 19 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 …]
|
D | ipa_power.c | 115 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 …]
|
D | ipa_cmd.c | 174 bool ipa_cmd_table_valid(struct ipa *ipa, const struct ipa_mem *mem, bool route) in ipa_cmd_table_valid() argument 179 struct device *dev = &ipa->pdev->dev; in ipa_cmd_table_valid() 192 ipa->mem_offset > offset_max - mem->offset) { in ipa_cmd_table_valid() 195 ipa->mem_offset, mem->offset, offset_max); in ipa_cmd_table_valid() 201 if (mem->offset > ipa->mem_size || in ipa_cmd_table_valid() 202 mem->size > ipa->mem_size - mem->offset) { in ipa_cmd_table_valid() 205 mem->offset, mem->size, ipa->mem_size); in ipa_cmd_table_valid() 214 static bool ipa_cmd_header_valid(struct ipa *ipa) in ipa_cmd_header_valid() argument 216 struct device *dev = &ipa->pdev->dev; in ipa_cmd_header_valid() 234 mem = ipa_mem_find(ipa, IPA_MEM_MODEM_HEADER); in ipa_cmd_header_valid() [all …]
|
D | ipa_table.h | 11 struct ipa; 28 bool ipa_table_valid(struct ipa *ipa); 37 bool ipa_filter_map_valid(struct ipa *ipa, u32 filter_mask); 43 static inline bool ipa_table_hash_support(struct ipa *ipa) in ipa_table_hash_support() argument 45 return ipa->version != IPA_VERSION_4_2; in ipa_table_hash_support() 53 void ipa_table_reset(struct ipa *ipa, bool modem); 59 int ipa_table_hash_flush(struct ipa *ipa); 67 int ipa_table_setup(struct ipa *ipa); 75 void ipa_table_config(struct ipa *ipa); 81 int ipa_table_init(struct ipa *ipa); [all …]
|
D | ipa_qmi.c | 86 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 …]
|
D | ipa_reg.c | 13 static bool ipa_reg_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_valid() argument 15 enum ipa_version version = ipa->version; in ipa_reg_valid() 19 if ((u32)reg_id >= ipa->regs->reg_count) in ipa_reg_valid() 67 return valid && ipa->regs->reg[reg_id]; in ipa_reg_valid() 70 const struct ipa_reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument 72 if (WARN_ON(!ipa_reg_valid(ipa, reg_id))) in ipa_reg() 75 return ipa->regs->reg[reg_id]; in ipa_reg() 98 int ipa_reg_init(struct ipa *ipa) in ipa_reg_init() argument 100 struct device *dev = &ipa->pdev->dev; in ipa_reg_init() 104 regs = ipa_regs(ipa->version); in ipa_reg_init() [all …]
|
D | ipa_power.h | 11 struct ipa; 23 u32 ipa_core_clock_rate(struct ipa *ipa); 29 void ipa_power_modem_queue_stop(struct ipa *ipa); 35 void ipa_power_modem_queue_wake(struct ipa *ipa); 41 void ipa_power_modem_queue_active(struct ipa *ipa); 48 void ipa_power_retention(struct ipa *ipa, bool enable); 56 int ipa_power_setup(struct ipa *ipa); 62 void ipa_power_teardown(struct ipa *ipa);
|
D | ipa_resource.c | 29 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 + ipa_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 …]
|
D | ipa_smp2p.c | 61 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 …]
|
D | ipa_mem.h | 9 struct ipa; 92 const struct ipa_mem *ipa_mem_find(struct ipa *ipa, enum ipa_mem_id mem_id); 94 int ipa_mem_config(struct ipa *ipa); 95 void ipa_mem_deconfig(struct ipa *ipa); 97 int ipa_mem_setup(struct ipa *ipa); /* No ipa_mem_teardown() needed */ 99 int ipa_mem_zero_modem(struct ipa *ipa); 101 int ipa_mem_init(struct ipa *ipa, const struct ipa_mem_data *mem_data); 102 void ipa_mem_exit(struct ipa *ipa);
|
D | ipa_gsi.c | 17 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()
|
D | ipa_sysfs.c | 14 static const char *ipa_version_string(struct ipa *ipa) in ipa_version_string() argument 16 switch (ipa->version) { in ipa_version_string() 47 struct ipa *ipa = dev_get_drvdata(dev); in version_show() local 49 return scnprintf(buf, PAGE_SIZE, "%s\n", ipa_version_string(ipa)); in version_show() 63 static const char *ipa_offload_string(struct ipa *ipa) in ipa_offload_string() argument 65 return ipa->version < IPA_VERSION_4_5 ? "MAPv4" : "MAPv5"; in ipa_offload_string() 71 struct ipa *ipa = dev_get_drvdata(dev); in rx_offload_show() local 73 return scnprintf(buf, PAGE_SIZE, "%s\n", ipa_offload_string(ipa)); in rx_offload_show() 81 struct ipa *ipa = dev_get_drvdata(dev); in tx_offload_show() local 83 return scnprintf(buf, PAGE_SIZE, "%s\n", ipa_offload_string(ipa)); in tx_offload_show() [all …]
|
D | ipa_uc.h | 9 struct ipa; 15 void ipa_uc_config(struct ipa *ipa); 21 void ipa_uc_deconfig(struct ipa *ipa); 35 void ipa_uc_power(struct ipa *ipa); 44 void ipa_uc_panic_notifier(struct ipa *ipa);
|
D | ipa_smp2p.h | 11 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);
|
D | ipa_modem.h | 9 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);
|
D | ipa_cmd.h | 15 struct ipa; 57 bool ipa_cmd_table_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);
|
D | ipa_qmi.h | 12 struct ipa; 56 int ipa_qmi_setup(struct ipa *ipa); 62 void ipa_qmi_teardown(struct ipa *ipa);
|
/Linux-v6.1/Documentation/ABI/testing/ |
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 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 …]
|