Lines Matching refs:target

59 static void reset_endpoint_states(HTC_TARGET *target);
93 void htc_free_control_tx_packet(HTC_TARGET *target, HTC_PACKET *pPacket) in htc_free_control_tx_packet() argument
97 LOCK_HTC(target); in htc_free_control_tx_packet()
98 HTC_PACKET_ENQUEUE(&target->ControlBufferTXFreeList, pPacket); in htc_free_control_tx_packet()
99 UNLOCK_HTC(target); in htc_free_control_tx_packet()
107 HTC_PACKET *htc_alloc_control_tx_packet(HTC_TARGET *target) in htc_alloc_control_tx_packet() argument
112 LOCK_HTC(target); in htc_alloc_control_tx_packet()
113 pPacket = htc_packet_dequeue(&target->ControlBufferTXFreeList); in htc_alloc_control_tx_packet()
114 UNLOCK_HTC(target); in htc_alloc_control_tx_packet()
118 return build_htc_tx_ctrl_packet(target->osdev); in htc_alloc_control_tx_packet()
126 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_set_target_failure_callback() local
128 target->HTCInitInfo.TargetFailure = Callback; in htc_set_target_failure_callback()
133 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_dump() local
135 hif_dump(target->hif_dev, CmdId, start); in htc_dump()
140 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_ce_tasklet_debug_dump() local
142 if (!target->hif_dev) in htc_ce_tasklet_debug_dump()
145 hif_display_stats(target->hif_dev); in htc_ce_tasklet_debug_dump()
156 int32_t htc_dec_return_wmi_runtime_cnt(HTC_TARGET *target) in htc_dec_return_wmi_runtime_cnt() argument
158 return qdf_atomic_dec_return(&target->htc_wmi_runtime_cnt); in htc_dec_return_wmi_runtime_cnt()
168 void htc_init_wmi_runtime_cnt(HTC_TARGET *target) in htc_init_wmi_runtime_cnt() argument
170 qdf_atomic_init(&target->htc_wmi_runtime_cnt); in htc_init_wmi_runtime_cnt()
174 int32_t htc_dec_return_wmi_runtime_cnt(HTC_TARGET *target) in htc_dec_return_wmi_runtime_cnt() argument
180 void htc_init_wmi_runtime_cnt(HTC_TARGET *target) in htc_init_wmi_runtime_cnt() argument
185 static void htc_cleanup(HTC_TARGET *target) in htc_cleanup() argument
193 while (htc_dec_return_htt_runtime_cnt((void *)target) >= 0) in htc_cleanup()
196 while (htc_dec_return_wmi_runtime_cnt((void *)target) >= 0) in htc_cleanup()
199 if (target->hif_dev) { in htc_cleanup()
200 hif_detach_htc(target->hif_dev); in htc_cleanup()
201 hif_mask_interrupt_call(target->hif_dev); in htc_cleanup()
202 target->hif_dev = NULL; in htc_cleanup()
206 pPacket = allocate_htc_packet_container(target); in htc_cleanup()
212 LOCK_HTC_TX(target); in htc_cleanup()
213 pPacket = target->pBundleFreeList; in htc_cleanup()
214 target->pBundleFreeList = NULL; in htc_cleanup()
215 UNLOCK_HTC_TX(target); in htc_cleanup()
230 pPacket = htc_alloc_control_tx_packet(target); in htc_cleanup()
240 __func__, target->nbuf_nfc_map_count, in htc_cleanup()
241 target->nbuf_nfc_unmap_count); in htc_cleanup()
243 htc_flush_endpoint_txlookupQ(target, ENDPOINT_0, true); in htc_cleanup()
245 qdf_spinlock_destroy(&target->HTCLock); in htc_cleanup()
246 qdf_spinlock_destroy(&target->HTCRxLock); in htc_cleanup()
247 qdf_spinlock_destroy(&target->HTCTxLock); in htc_cleanup()
249 endpoint = &target->endpoint[i]; in htc_cleanup()
254 qdf_mem_free(target); in htc_cleanup()
264 static void htc_runtime_pm_init(HTC_TARGET *target) in htc_runtime_pm_init() argument
266 qdf_create_work(0, &target->queue_kicker, htc_kick_queues, target); in htc_runtime_pm_init()
295 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_ctx); in htc_runtime_resume() local
297 if (!target) in htc_runtime_resume()
300 qdf_sched_work(0, &target->queue_kicker); in htc_runtime_resume()
312 static void htc_runtime_pm_deinit(HTC_TARGET *target) in htc_runtime_pm_deinit() argument
314 if (!target) in htc_runtime_pm_deinit()
317 qdf_destroy_work(0, &target->queue_kicker); in htc_runtime_pm_deinit()
322 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc); in htc_dec_return_htt_runtime_cnt() local
324 return qdf_atomic_dec_return(&target->htc_htt_runtime_cnt); in htc_dec_return_htt_runtime_cnt()
334 void htc_init_htt_runtime_cnt(HTC_TARGET *target) in htc_init_htt_runtime_cnt() argument
336 qdf_atomic_init(&target->htc_htt_runtime_cnt); in htc_init_htt_runtime_cnt()
339 static inline void htc_runtime_pm_init(HTC_TARGET *target) { } in htc_runtime_pm_init() argument
340 static inline void htc_runtime_pm_deinit(HTC_TARGET *target) { } in htc_runtime_pm_deinit() argument
343 void htc_init_htt_runtime_cnt(HTC_TARGET *target) in htc_init_htt_runtime_cnt() argument
352 HTC_TARGET *target = (HTC_TARGET *)ctx; in htc_update_rx_bundle_stats() local
355 if (target && (no_of_pkt_in_bundle < HTC_MAX_MSG_PER_BUNDLE_RX)) in htc_update_rx_bundle_stats()
356 target->rx_bundle_stats[no_of_pkt_in_bundle]++; in htc_update_rx_bundle_stats()
393 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_vote_link_down() local
395 if (!target->hif_dev) in htc_vote_link_down()
403 hif_vote_link_down(target->hif_dev); in htc_vote_link_down()
409 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_vote_link_up() local
411 if (!target->hif_dev) in htc_vote_link_up()
419 hif_vote_link_up(target->hif_dev); in htc_vote_link_up()
435 HTC_TARGET *target = NULL; in htc_create() local
446 target = (HTC_TARGET *) qdf_mem_malloc(sizeof(HTC_TARGET)); in htc_create()
447 if (!target) in htc_create()
450 htc_runtime_pm_init(target); in htc_create()
452 qdf_spinlock_create(&target->HTCLock); in htc_create()
453 qdf_spinlock_create(&target->HTCRxLock); in htc_create()
454 qdf_spinlock_create(&target->HTCTxLock); in htc_create()
456 pEndpoint = &target->endpoint[i]; in htc_create()
459 target->is_nodrop_pkt = false; in htc_create()
460 target->htc_hdr_length_check = false; in htc_create()
461 target->wmi_ep_count = 1; in htc_create()
464 qdf_mem_copy(&target->HTCInitInfo, pInfo, in htc_create()
466 target->host_handle = pInfo->pContext; in htc_create()
467 target->osdev = osdev; in htc_create()
468 target->con_mode = con_mode; in htc_create()
474 if (!target->HTCInitInfo.htc_ready_timeout_ms) in htc_create()
475 target->HTCInitInfo.htc_ready_timeout_ms = in htc_create()
478 reset_endpoint_states(target); in htc_create()
480 INIT_HTC_PACKET_QUEUE(&target->ControlBufferTXFreeList); in htc_create()
486 free_htc_packet_container(target, pPacket); in htc_create()
494 htc_free_control_tx_packet(target, pPacket); in htc_create()
500 htcCallbacks.Context = target; in htc_create()
507 target->hif_dev = ol_sc; in htc_create()
510 pEndpoint = &target->endpoint[ENDPOINT_0]; in htc_create()
512 hif_post_init(target->hif_dev, target, &htcCallbacks); in htc_create()
513 hif_get_default_pipe(target->hif_dev, &pEndpoint->UL_PipeID, in htc_create()
515 hif_set_initial_wakeup_cb(target->hif_dev, in htc_create()
521 htc_recv_init(target); in htc_create()
522 htc_init_htt_runtime_cnt(target); in htc_create()
523 htc_init_wmi_runtime_cnt(target); in htc_create()
525 HTC_TRACE("-htc_create: (0x%pK)", target); in htc_create()
527 htc_hang_event_notifier_register(target); in htc_create()
534 return (HTC_HANDLE) target; in htc_create()
539 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_destroy() local
542 ("+htc_destroy .. Destroying :0x%pK\n", target)); in htc_destroy()
546 if (target) { in htc_destroy()
548 htc_cleanup(target); in htc_destroy()
561 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_get_hif_device() local
563 return target->hif_dev; in htc_get_hif_device()
568 HTC_TARGET *target = (HTC_TARGET *) Context; in htc_control_tx_complete() local
573 htc_free_control_tx_packet(target, pPacket); in htc_control_tx_complete()
620 A_STATUS htc_setup_target_buffer_assignments(HTC_TARGET *target) in htc_setup_target_buffer_assignments() argument
627 creditsPerMaxMsg = MAX_MESSAGE_SIZE / target->TargetCreditSize; in htc_setup_target_buffer_assignments()
628 if (MAX_MESSAGE_SIZE % target->TargetCreditSize) in htc_setup_target_buffer_assignments()
633 credits = target->TotalTransmitCredits; in htc_setup_target_buffer_assignments()
634 pEntry = &target->ServiceTxAllocTable[0]; in htc_setup_target_buffer_assignments()
642 if (HTC_IS_EPPING_ENABLED(target->con_mode)) { in htc_setup_target_buffer_assignments()
670 htc_setup_epping_credit_allocation(target->hif_dev, in htc_setup_target_buffer_assignments()
676 if ((target->wmi_ep_count == 0) || in htc_setup_target_buffer_assignments()
677 (target->wmi_ep_count > max_wmi_svc)) in htc_setup_target_buffer_assignments()
683 credits = credits / target->wmi_ep_count; in htc_setup_target_buffer_assignments()
684 for (i = 0; i < target->wmi_ep_count; i++) { in htc_setup_target_buffer_assignments()
696 if (target->ServiceTxAllocTable[i].service_id != 0) { in htc_setup_target_buffer_assignments()
700 target->ServiceTxAllocTable[i]. in htc_setup_target_buffer_assignments()
702 target->ServiceTxAllocTable[i]. in htc_setup_target_buffer_assignments()
711 uint8_t htc_get_credit_allocation(HTC_TARGET *target, uint16_t service_id) in htc_get_credit_allocation() argument
717 if (target->ServiceTxAllocTable[i].service_id == service_id) { in htc_get_credit_allocation()
719 target->ServiceTxAllocTable[i].CreditAllocation; in htc_get_credit_allocation()
735 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_wait_target() local
750 status = hif_start(target->hif_dev); in htc_wait_target()
757 status = htc_wait_recv_ctrl_message(target); in htc_wait_target()
762 if (target->CtrlResponseLength < (sizeof(HTC_READY_EX_MSG))) { in htc_wait_target()
765 target->CtrlResponseLength)); in htc_wait_target()
770 pReadyMsg = (HTC_READY_EX_MSG *) target->CtrlResponseBuffer; in htc_wait_target()
783 target->TotalTransmitCredits = HTC_GET_FIELD(rdy_msg, in htc_wait_target()
785 if (target->HTCInitInfo.cfg_wmi_credit_cnt && in htc_wait_target()
786 (target->HTCInitInfo.cfg_wmi_credit_cnt < in htc_wait_target()
787 target->TotalTransmitCredits)) in htc_wait_target()
793 target->TotalTransmitCredits = in htc_wait_target()
794 target->HTCInitInfo.cfg_wmi_credit_cnt; in htc_wait_target()
796 target->TargetCreditSize = in htc_wait_target()
798 target->MaxMsgsPerHTCBundle = in htc_wait_target()
800 UPDATE_ALT_CREDIT(target, pReadyMsg->AltDataCreditSize); in htc_wait_target()
804 if (target->MaxMsgsPerHTCBundle < 1) in htc_wait_target()
805 target->MaxMsgsPerHTCBundle = 1; in htc_wait_target()
809 target->TotalTransmitCredits, in htc_wait_target()
810 target->TargetCreditSize, in htc_wait_target()
811 target->MaxMsgsPerHTCBundle)); in htc_wait_target()
813 if ((0 == target->TotalTransmitCredits) in htc_wait_target()
814 || (0 == target->TargetCreditSize)) { in htc_wait_target()
820 if (HTC_RX_BUNDLE_ENABLED(target)) { in htc_wait_target()
824 allocate_htc_bundle_packet(target); in htc_wait_target()
833 LOCK_HTC_TX(target); in htc_wait_target()
834 target->pBundleFreeList = temp_bundle_packet; in htc_wait_target()
835 UNLOCK_HTC_TX(target); in htc_wait_target()
839 target->CtrlResponseProcessing = false; in htc_wait_target()
841 htc_setup_target_buffer_assignments(target); in htc_wait_target()
846 connect.EpCallbacks.pContext = target; in htc_wait_target()
853 status = htc_connect_service((HTC_HANDLE) target, in htc_wait_target()
865 static A_STATUS htc_config_target_hif_pipe(HTC_TARGET *target) in htc_config_target_hif_pipe() argument
871 static void reset_endpoint_states(HTC_TARGET *target) in reset_endpoint_states() argument
877 pEndpoint = &target->endpoint[i]; in reset_endpoint_states()
885 pEndpoint->target = target; in reset_endpoint_states()
903 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_start() local
911 htc_config_target_hif_pipe(target); in htc_start()
914 pSendPacket = htc_alloc_control_tx_packet(target); in htc_start()
944 if ((hif_get_bus_type(target->hif_dev) == QDF_BUS_TYPE_SDIO) || in htc_start()
945 (hif_get_bus_type(target->hif_dev) == in htc_start()
947 if (HTC_RX_BUNDLE_ENABLED(target)) in htc_start()
950 hif_set_bundle_mode(target->hif_dev, true, in htc_start()
961 status = htc_send_pkt((HTC_HANDLE) target, pSendPacket); in htc_start()
973 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_flush_surprise_remove() local
978 qdf_nbuf_queue_t *rx_sg_queue = &target->RxSgQueue; in htc_flush_surprise_remove()
985 pEndpoint = &target->endpoint[i]; in htc_flush_surprise_remove()
986 htc_flush_rx_hold_queue(target, pEndpoint); in htc_flush_surprise_remove()
987 htc_flush_endpoint_tx(target, pEndpoint, HTC_TX_PACKET_TAG_ALL); in htc_flush_surprise_remove()
990 hif_flush_surprise_remove(target->hif_dev); in htc_flush_surprise_remove()
993 LOCK_HTC_RX(target); in htc_flush_surprise_remove()
996 RESET_RX_SG_CONFIG(target); in htc_flush_surprise_remove()
997 UNLOCK_HTC_RX(target); in htc_flush_surprise_remove()
1000 reset_endpoint_states(target); in htc_flush_surprise_remove()
1010 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_stop() local
1015 qdf_nbuf_queue_t *rx_sg_queue = &target->RxSgQueue; in htc_stop()
1020 htc_runtime_pm_deinit(target); in htc_stop()
1025 endpoint = &target->endpoint[i]; in htc_stop()
1026 htc_flush_rx_hold_queue(target, endpoint); in htc_stop()
1027 htc_flush_endpoint_tx(target, endpoint, HTC_TX_PACKET_TAG_ALL); in htc_stop()
1042 hif_stop(target->hif_dev); in htc_stop()
1045 LOCK_HTC_RX(target); in htc_stop()
1048 RESET_RX_SG_CONFIG(target); in htc_stop()
1049 UNLOCK_HTC_RX(target); in htc_stop()
1063 endpoint = &target->endpoint[i]; in htc_stop()
1065 htc_flush_endpoint_txlookupQ(target, i, false); in htc_stop()
1069 htc_flush_endpoint_txlookupQ(target, i, true); in htc_stop()
1073 reset_endpoint_states(target); in htc_stop()
1080 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_dump_credit_states() local
1085 pEndpoint = &target->endpoint[i]; in htc_dump_credit_states()
1115 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_get_endpoint_statistics() local
1137 LOCK_HTC_TX(target); in htc_get_endpoint_statistics()
1138 LOCK_HTC_RX(target); in htc_get_endpoint_statistics()
1143 qdf_mem_copy(pStats, &target->endpoint[Endpoint].endpoint_stats, in htc_get_endpoint_statistics()
1149 qdf_mem_zero(&target->endpoint[Endpoint].endpoint_stats, in htc_get_endpoint_statistics()
1153 UNLOCK_HTC_RX(target); in htc_get_endpoint_statistics()
1154 UNLOCK_HTC_TX(target); in htc_get_endpoint_statistics()
1164 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_get_targetdef() local
1166 return hif_get_targetdef(target->hif_dev); in htc_get_targetdef()
1184 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_ipa_get_ce_resource() local
1186 if (target->hif_dev) in htc_ipa_get_ce_resource()
1187 hif_ipa_get_ce_resource(target->hif_dev, in htc_ipa_get_ce_resource()
1196 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_dump_bundle_stats() local
1201 total += target->rx_bundle_stats[i]; in htc_dump_bundle_stats()
1212 target->rx_bundle_stats[i], in htc_dump_bundle_stats()
1213 ((target->rx_bundle_stats[i]*100)/ in htc_dump_bundle_stats()
1220 total += target->tx_bundle_stats[i]; in htc_dump_bundle_stats()
1231 target->tx_bundle_stats[i], in htc_dump_bundle_stats()
1232 ((target->tx_bundle_stats[i]*100)/ in htc_dump_bundle_stats()
1239 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(HTCHandle); in htc_clear_bundle_stats() local
1241 qdf_mem_zero(&target->rx_bundle_stats, sizeof(target->rx_bundle_stats)); in htc_clear_bundle_stats()
1242 qdf_mem_zero(&target->tx_bundle_stats, sizeof(target->tx_bundle_stats)); in htc_clear_bundle_stats()
1256 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_can_suspend_link() local
1258 if (!target->hif_dev) in htc_can_suspend_link()
1261 return hif_can_suspend_link(target->hif_dev); in htc_can_suspend_link()
1285 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_set_wmi_endpoint_count() local
1287 target->wmi_ep_count = wmi_ep_count; in htc_set_wmi_endpoint_count()
1298 HTC_TARGET *target = GET_HTC_TARGET_FROM_HANDLE(htc_handle); in htc_get_wmi_endpoint_count() local
1300 return target->wmi_ep_count; in htc_get_wmi_endpoint_count()