Lines Matching refs:copp

130 	struct q6copp *copp;  in q6adm_callback()  local
158 copp = q6adm_find_copp(adm, port_idx, copp_idx); in q6adm_callback()
159 if (!copp) in q6adm_callback()
162 copp->result = *result; in q6adm_callback()
163 wake_up(&copp->wait); in q6adm_callback()
164 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_callback()
185 copp = q6adm_find_copp(adm, port_idx, copp_idx); in q6adm_callback()
186 if (!copp) in q6adm_callback()
192 copp->result.status = ADSP_EBADPARAM; in q6adm_callback()
193 wake_up(&copp->wait); in q6adm_callback()
194 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_callback()
197 copp->result.opcode = hdr->opcode; in q6adm_callback()
198 copp->id = open->copp_id; in q6adm_callback()
199 wake_up(&copp->wait); in q6adm_callback()
200 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_callback()
237 static int q6adm_apr_send_copp_pkt(struct q6adm *adm, struct q6copp *copp, in q6adm_apr_send_copp_pkt() argument
245 copp->result.opcode = 0; in q6adm_apr_send_copp_pkt()
246 copp->result.status = 0; in q6adm_apr_send_copp_pkt()
256 ret = wait_event_timeout(copp->wait, in q6adm_apr_send_copp_pkt()
257 (copp->result.opcode == opcode) || in q6adm_apr_send_copp_pkt()
258 (copp->result.opcode == rsp_opcode), in q6adm_apr_send_copp_pkt()
261 ret = wait_event_timeout(copp->wait, in q6adm_apr_send_copp_pkt()
262 (copp->result.opcode == opcode), in q6adm_apr_send_copp_pkt()
268 } else if (copp->result.status > 0) { in q6adm_apr_send_copp_pkt()
270 copp->result.status); in q6adm_apr_send_copp_pkt()
279 static int q6adm_device_close(struct q6adm *adm, struct q6copp *copp, in q6adm_device_close() argument
289 close.hdr.dest_port = copp->id; in q6adm_device_close()
293 return q6adm_apr_send_copp_pkt(adm, copp, &close, 0); in q6adm_device_close()
321 static int q6adm_device_open(struct q6adm *adm, struct q6copp *copp, in q6adm_device_open() argument
344 pkt->hdr.token = port_id << 16 | copp->copp_idx; in q6adm_device_open()
359 ret = q6adm_apr_send_copp_pkt(adm, copp, pkt, in q6adm_device_open()
388 struct q6copp *copp; in q6adm_open() local
397 copp = q6adm_find_matching_copp(adm, port_id, topology, perf_mode, in q6adm_open()
399 if (copp) { in q6adm_open()
400 dev_err(dev, "Found Matching Copp 0x%x\n", copp->copp_idx); in q6adm_open()
401 return copp; in q6adm_open()
405 copp = q6adm_alloc_copp(adm, port_id); in q6adm_open()
406 if (IS_ERR(copp)) { in q6adm_open()
408 return ERR_CAST(copp); in q6adm_open()
411 list_add_tail(&copp->node, &adm->copps_list); in q6adm_open()
414 kref_init(&copp->refcount); in q6adm_open()
415 copp->topology = topology; in q6adm_open()
416 copp->mode = perf_mode; in q6adm_open()
417 copp->rate = rate; in q6adm_open()
418 copp->channels = channel_mode; in q6adm_open()
419 copp->bit_width = bit_width; in q6adm_open()
420 copp->app_type = app_type; in q6adm_open()
422 ret = q6adm_device_open(adm, copp, port_id, path, topology, in q6adm_open()
425 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_open()
429 return copp; in q6adm_open()
440 int q6adm_get_copp_id(struct q6copp *copp) in q6adm_get_copp_id() argument
442 if (!copp) in q6adm_get_copp_id()
445 return copp->copp_idx; in q6adm_get_copp_id()
469 struct q6copp *copp; in q6adm_matrix_map() local
518 copp = q6adm_find_copp(adm, port_idx, copp_idx); in q6adm_matrix_map()
519 if (!copp) { in q6adm_matrix_map()
524 copps_list[i] = copp->id; in q6adm_matrix_map()
525 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_matrix_map()
568 int q6adm_close(struct device *dev, struct q6copp *copp) in q6adm_close() argument
573 ret = q6adm_device_close(adm, copp, copp->afe_port, copp->copp_idx); in q6adm_close()
579 kref_put(&copp->refcount, q6adm_free_copp); in q6adm_close()