Lines Matching refs:target

21 static int htc_issue_send(struct htc_target *target, struct sk_buff* skb,  in htc_issue_send()  argument
26 struct htc_endpoint *endpoint = &target->endpoint[epid]; in htc_issue_send()
34 status = target->hif->send(target->hif_dev, endpoint->ul_pipeid, skb); in htc_issue_send()
87 static void htc_process_target_rdy(struct htc_target *target, in htc_process_target_rdy() argument
93 target->credit_size = be16_to_cpu(htc_ready_msg->credit_size); in htc_process_target_rdy()
95 endpoint = &target->endpoint[ENDPOINT0]; in htc_process_target_rdy()
98 atomic_inc(&target->tgt_ready); in htc_process_target_rdy()
99 complete(&target->target_wait); in htc_process_target_rdy()
102 static void htc_process_conn_rsp(struct htc_target *target, in htc_process_conn_rsp() argument
121 endpoint = &target->endpoint[epid]; in htc_process_conn_rsp()
124 tmp_endpoint = &target->endpoint[tepid]; in htc_process_conn_rsp()
140 target->conn_rsp_epid = epid; in htc_process_conn_rsp()
141 complete(&target->cmd_wait); in htc_process_conn_rsp()
143 target->conn_rsp_epid = ENDPOINT_UNUSED; in htc_process_conn_rsp()
147 static int htc_config_pipe_credits(struct htc_target *target) in htc_config_pipe_credits() argument
156 dev_err(target->dev, "failed to allocate send buffer\n"); in htc_config_pipe_credits()
165 cp_msg->credits = target->credits; in htc_config_pipe_credits()
167 target->htc_flags |= HTC_OP_CONFIG_PIPE_CREDITS; in htc_config_pipe_credits()
169 ret = htc_issue_send(target, skb, skb->len, 0, ENDPOINT0); in htc_config_pipe_credits()
173 time_left = wait_for_completion_timeout(&target->cmd_wait, HZ); in htc_config_pipe_credits()
175 dev_err(target->dev, "HTC credit config timeout\n"); in htc_config_pipe_credits()
185 static int htc_setup_complete(struct htc_target *target) in htc_setup_complete() argument
194 dev_err(target->dev, "failed to allocate send buffer\n"); in htc_setup_complete()
202 target->htc_flags |= HTC_OP_START_WAIT; in htc_setup_complete()
204 ret = htc_issue_send(target, skb, skb->len, 0, ENDPOINT0); in htc_setup_complete()
208 time_left = wait_for_completion_timeout(&target->cmd_wait, HZ); in htc_setup_complete()
210 dev_err(target->dev, "HTC start timeout\n"); in htc_setup_complete()
223 int htc_init(struct htc_target *target) in htc_init() argument
227 ret = htc_config_pipe_credits(target); in htc_init()
231 return htc_setup_complete(target); in htc_init()
234 int htc_connect_service(struct htc_target *target, in htc_connect_service() argument
245 endpoint = get_next_avail_ep(target->endpoint); in htc_connect_service()
247 dev_err(target->dev, "Endpoint is not available for service %d\n", in htc_connect_service()
261 dev_err(target->dev, "Failed to allocate buf to send" in htc_connect_service()
275 ret = htc_issue_send(target, skb, skb->len, 0, ENDPOINT0); in htc_connect_service()
279 time_left = wait_for_completion_timeout(&target->cmd_wait, HZ); in htc_connect_service()
281 dev_err(target->dev, "Service connection timeout for: %d\n", in htc_connect_service()
286 *conn_rsp_epid = target->conn_rsp_epid; in htc_connect_service()
293 int htc_send(struct htc_target *target, struct sk_buff *skb) in htc_send() argument
298 return htc_issue_send(target, skb, skb->len, 0, tx_ctl->epid); in htc_send()
301 int htc_send_epid(struct htc_target *target, struct sk_buff *skb, in htc_send_epid() argument
304 return htc_issue_send(target, skb, skb->len, 0, epid); in htc_send_epid()
307 void htc_stop(struct htc_target *target) in htc_stop() argument
309 target->hif->stop(target->hif_dev); in htc_stop()
312 void htc_start(struct htc_target *target) in htc_start() argument
314 target->hif->start(target->hif_dev); in htc_start()
317 void htc_sta_drain(struct htc_target *target, u8 idx) in htc_sta_drain() argument
319 target->hif->sta_drain(target->hif_dev, idx); in htc_sta_drain()
471 struct htc_target *target; in ath9k_htc_hw_alloc() local
473 target = kzalloc(sizeof(struct htc_target), GFP_KERNEL); in ath9k_htc_hw_alloc()
474 if (!target) in ath9k_htc_hw_alloc()
477 init_completion(&target->target_wait); in ath9k_htc_hw_alloc()
478 init_completion(&target->cmd_wait); in ath9k_htc_hw_alloc()
480 target->hif = hif; in ath9k_htc_hw_alloc()
481 target->hif_dev = hif_handle; in ath9k_htc_hw_alloc()
482 target->dev = dev; in ath9k_htc_hw_alloc()
485 endpoint = &target->endpoint[ENDPOINT0]; in ath9k_htc_hw_alloc()
489 atomic_set(&target->tgt_ready, 0); in ath9k_htc_hw_alloc()
491 return target; in ath9k_htc_hw_alloc()
499 int ath9k_htc_hw_init(struct htc_target *target, in ath9k_htc_hw_init() argument
503 if (ath9k_htc_probe_device(target, dev, devid, product, drv_info)) { in ath9k_htc_hw_init()
511 void ath9k_htc_hw_deinit(struct htc_target *target, bool hot_unplug) in ath9k_htc_hw_deinit() argument
513 if (target) in ath9k_htc_hw_deinit()
514 ath9k_htc_disconnect_device(target, hot_unplug); in ath9k_htc_hw_deinit()