Lines Matching refs:drvdata
87 void cc_req_mgr_fini(struct cc_drvdata *drvdata) in cc_req_mgr_fini() argument
89 struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle; in cc_req_mgr_fini()
90 struct device *dev = drvdata_to_dev(drvdata); in cc_req_mgr_fini()
112 drvdata->request_mgr_handle = NULL; in cc_req_mgr_fini()
115 int cc_req_mgr_init(struct cc_drvdata *drvdata) in cc_req_mgr_init() argument
118 struct device *dev = drvdata_to_dev(drvdata); in cc_req_mgr_init()
127 drvdata->request_mgr_handle = req_mgr_h; in cc_req_mgr_init()
145 (unsigned long)drvdata); in cc_req_mgr_init()
147 req_mgr_h->hw_queue_size = cc_ioread(drvdata, in cc_req_mgr_init()
177 set_queue_last_ind(drvdata, &req_mgr_h->compl_desc); in cc_req_mgr_init()
182 cc_req_mgr_fini(drvdata); in cc_req_mgr_init()
186 static void enqueue_seq(struct cc_drvdata *drvdata, struct cc_hw_desc seq[], in enqueue_seq() argument
190 void __iomem *reg = drvdata->cc_base + CC_REG(DSCRPTR_QUEUE_WORD0); in enqueue_seq()
191 struct device *dev = drvdata_to_dev(drvdata); in enqueue_seq()
225 static int cc_queues_status(struct cc_drvdata *drvdata, in cc_queues_status() argument
230 struct device *dev = drvdata_to_dev(drvdata); in cc_queues_status()
249 cc_ioread(drvdata, CC_REG(DSCRPTR_QUEUE_CONTENT)); in cc_queues_status()
280 static int cc_do_send_request(struct cc_drvdata *drvdata, in cc_do_send_request() argument
285 struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle; in cc_do_send_request()
288 struct device *dev = drvdata_to_dev(drvdata); in cc_do_send_request()
313 enqueue_seq(drvdata, desc, len); in cc_do_send_request()
316 enqueue_seq(drvdata, &req_mgr_h->compl_desc, 1); in cc_do_send_request()
336 static void cc_enqueue_backlog(struct cc_drvdata *drvdata, in cc_enqueue_backlog() argument
339 struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle; in cc_enqueue_backlog()
340 struct device *dev = drvdata_to_dev(drvdata); in cc_enqueue_backlog()
350 static void cc_proc_backlog(struct cc_drvdata *drvdata) in cc_proc_backlog() argument
352 struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle; in cc_proc_backlog()
356 struct device *dev = drvdata_to_dev(drvdata); in cc_proc_backlog()
382 rc = cc_queues_status(drvdata, mgr, bli->len); in cc_proc_backlog()
393 rc = cc_do_send_request(drvdata, &bli->creq, bli->desc, in cc_proc_backlog()
412 int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req, in cc_send_request() argument
417 struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle; in cc_send_request()
418 struct device *dev = drvdata_to_dev(drvdata); in cc_send_request()
430 rc = cc_queues_status(drvdata, mgr, len); in cc_send_request()
450 cc_enqueue_backlog(drvdata, bli); in cc_send_request()
455 rc = cc_do_send_request(drvdata, cc_req, desc, len, false); in cc_send_request()
461 int cc_send_sync_request(struct cc_drvdata *drvdata, in cc_send_sync_request() argument
466 struct device *dev = drvdata_to_dev(drvdata); in cc_send_sync_request()
467 struct cc_req_mgr_handle *mgr = drvdata->request_mgr_handle; in cc_send_sync_request()
481 rc = cc_queues_status(drvdata, mgr, len + 1); in cc_send_sync_request()
491 wait_for_completion_interruptible(&drvdata->hw_queue_avail); in cc_send_sync_request()
492 reinit_completion(&drvdata->hw_queue_avail); in cc_send_sync_request()
495 rc = cc_do_send_request(drvdata, cc_req, desc, len, true); in cc_send_sync_request()
518 int send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc, in send_request_init() argument
521 struct cc_req_mgr_handle *req_mgr_h = drvdata->request_mgr_handle; in send_request_init()
527 rc = cc_queues_status(drvdata, req_mgr_h, total_seq_len); in send_request_init()
531 set_queue_last_ind(drvdata, &desc[(len - 1)]); in send_request_init()
539 enqueue_seq(drvdata, desc, len); in send_request_init()
543 cc_ioread(drvdata, CC_REG(DSCRPTR_QUEUE_CONTENT)); in send_request_init()
548 void complete_request(struct cc_drvdata *drvdata) in complete_request() argument
551 drvdata->request_mgr_handle; in complete_request()
553 complete(&drvdata->hw_queue_avail); in complete_request()
565 struct cc_drvdata *drvdata = in comp_work_handler() local
568 comp_handler((unsigned long)drvdata); in comp_work_handler()
572 static void proc_completions(struct cc_drvdata *drvdata) in proc_completions() argument
575 struct device *dev = drvdata_to_dev(drvdata); in proc_completions()
577 drvdata->request_mgr_handle; in proc_completions()
605 rc = (drvdata->irq & mask ? -EPERM : 0); in proc_completions()
607 drvdata->irq, rc); in proc_completions()
623 static inline u32 cc_axi_comp_count(struct cc_drvdata *drvdata) in cc_axi_comp_count() argument
626 cc_ioread(drvdata, drvdata->axim_mon_offset)); in cc_axi_comp_count()
632 struct cc_drvdata *drvdata = (struct cc_drvdata *)devarg; in comp_handler() local
634 drvdata->request_mgr_handle; in comp_handler()
635 struct device *dev = drvdata_to_dev(drvdata); in comp_handler()
639 irq = (drvdata->irq & drvdata->comp_mask); in comp_handler()
644 cc_iowrite(drvdata, CC_REG(HOST_ICR), irq); in comp_handler()
648 request_mgr_handle->axi_completed += cc_axi_comp_count(drvdata); in comp_handler()
655 drvdata->irq |= cc_ioread(drvdata, CC_REG(HOST_IRR)); in comp_handler()
656 irq = (drvdata->irq & drvdata->comp_mask); in comp_handler()
657 proc_completions(drvdata); in comp_handler()
663 cc_axi_comp_count(drvdata); in comp_handler()
666 cc_iowrite(drvdata, CC_REG(HOST_ICR), irq); in comp_handler()
668 request_mgr_handle->axi_completed += cc_axi_comp_count(drvdata); in comp_handler()
674 cc_iowrite(drvdata, CC_REG(HOST_IMR), in comp_handler()
675 cc_ioread(drvdata, CC_REG(HOST_IMR)) & ~drvdata->comp_mask); in comp_handler()
677 cc_proc_backlog(drvdata); in comp_handler()
686 int cc_resume_req_queue(struct cc_drvdata *drvdata) in cc_resume_req_queue() argument
689 drvdata->request_mgr_handle; in cc_resume_req_queue()
702 int cc_suspend_req_queue(struct cc_drvdata *drvdata) in cc_suspend_req_queue() argument
705 drvdata->request_mgr_handle; in cc_suspend_req_queue()
720 bool cc_req_queue_suspended(struct cc_drvdata *drvdata) in cc_req_queue_suspended() argument
723 drvdata->request_mgr_handle; in cc_req_queue_suspended()