• Home
  • Raw
  • Download

Lines Matching full:ipa

13 #include "ipa.h"
28 * complete, the AP and modem may begin IPA operation. This occurs
29 * only when the AP IPA driver, modem IPA driver, and IPA microcontroller
36 * contains a success result, the AP knows the modem IPA driver is ready.
38 * The modem is responsible for loading firmware on the IPA microcontroller.
53 * - Whenever the AP learns the modem has booted and its IPA QMI service
56 * - On the initial boot, the modem sets up the IPA microcontroller, and
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()
118 * We know everything (else) is ready when we know the IPA driver on
128 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); 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
219 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_driver_init_complete()
231 dev_err(&ipa->pdev->dev, in ipa_server_driver_init_complete()
286 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in init_modem_driver_req() local
292 req.skip_uc_load = ipa->uc_loaded ? 1 : 0; in init_modem_driver_req()
301 mem = &ipa->mem[IPA_MEM_MODEM_HEADER]; in init_modem_driver_req()
304 req.hdr_tbl_info.start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
308 mem = &ipa->mem[IPA_MEM_V4_ROUTE]; in init_modem_driver_req()
310 req.v4_route_tbl_info.start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
313 mem = &ipa->mem[IPA_MEM_V6_ROUTE]; in init_modem_driver_req()
315 req.v6_route_tbl_info.start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
318 mem = &ipa->mem[IPA_MEM_V4_FILTER]; in init_modem_driver_req()
320 req.v4_filter_tbl_start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
322 mem = &ipa->mem[IPA_MEM_V6_FILTER]; in init_modem_driver_req()
324 req.v6_filter_tbl_start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
326 mem = &ipa->mem[IPA_MEM_MODEM]; in init_modem_driver_req()
329 req.modem_mem_info.start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
335 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->endpoint_id; in init_modem_driver_req()
339 mem = &ipa->mem[IPA_MEM_MODEM_PROC_CTX]; in init_modem_driver_req()
343 ipa->mem_offset + mem->offset; in init_modem_driver_req()
350 mem = &ipa->mem[IPA_MEM_V4_ROUTE_HASHED]; in init_modem_driver_req()
354 ipa->mem_offset + mem->offset; in init_modem_driver_req()
359 mem = &ipa->mem[IPA_MEM_V6_ROUTE_HASHED]; in init_modem_driver_req()
363 ipa->mem_offset + mem->offset; in init_modem_driver_req()
368 mem = &ipa->mem[IPA_MEM_V4_FILTER_HASHED]; in init_modem_driver_req()
371 req.v4_hash_filter_tbl_start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
374 mem = &ipa->mem[IPA_MEM_V6_FILTER_HASHED]; in init_modem_driver_req()
377 req.v6_hash_filter_tbl_start = ipa->mem_offset + mem->offset; in init_modem_driver_req()
380 /* None of the stats fields are valid (IPA v4.0 and above) */ in init_modem_driver_req()
382 if (ipa->version != IPA_VERSION_3_5_1) { in init_modem_driver_req()
383 mem = &ipa->mem[IPA_MEM_STATS_QUOTA]; in init_modem_driver_req()
387 ipa->mem_offset + mem->offset; in init_modem_driver_req()
389 req.hw_stats_quota_size = ipa->mem_offset + mem->size; in init_modem_driver_req()
392 mem = &ipa->mem[IPA_MEM_STATS_DROP]; in init_modem_driver_req()
396 ipa->mem_offset + mem->offset; in init_modem_driver_req()
398 req.hw_stats_drop_size = ipa->mem_offset + mem->size; in init_modem_driver_req()
414 struct ipa *ipa; in ipa_client_init_driver_work() local
420 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_client_init_driver_work()
421 dev = &ipa->pdev->dev; in ipa_client_init_driver_work()
476 int ipa_qmi_setup(struct ipa *ipa) in ipa_qmi_setup() argument
478 struct ipa_qmi *ipa_qmi = &ipa->qmi; in ipa_qmi_setup()
531 void ipa_qmi_teardown(struct ipa *ipa) in ipa_qmi_teardown() argument
533 cancel_work_sync(&ipa->qmi.init_driver_work); in ipa_qmi_teardown()
535 qmi_handle_release(&ipa->qmi.client_handle); in ipa_qmi_teardown()
536 memset(&ipa->qmi.client_handle, 0, sizeof(ipa->qmi.client_handle)); in ipa_qmi_teardown()
538 qmi_handle_release(&ipa->qmi.server_handle); in ipa_qmi_teardown()
539 memset(&ipa->qmi.server_handle, 0, sizeof(ipa->qmi.server_handle)); in ipa_qmi_teardown()