xref: /OK3568_Linux_fs/kernel/drivers/crypto/ccree/cc_request_mgr.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun /* Copyright (C) 2012-2019 ARM Limited (or its affiliates). */
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun /* \file cc_request_mgr.h
5*4882a593Smuzhiyun  * Request Manager
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef __REQUEST_MGR_H__
9*4882a593Smuzhiyun #define __REQUEST_MGR_H__
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include "cc_hw_queue_defs.h"
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun int cc_req_mgr_init(struct cc_drvdata *drvdata);
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun /**
16*4882a593Smuzhiyun  * cc_send_request() - Enqueue caller request to crypto hardware.
17*4882a593Smuzhiyun  *
18*4882a593Smuzhiyun  * @drvdata: Associated device driver context
19*4882a593Smuzhiyun  * @cc_req: The request to enqueue
20*4882a593Smuzhiyun  * @desc: The crypto sequence
21*4882a593Smuzhiyun  * @len: The crypto sequence length
22*4882a593Smuzhiyun  * @req: Asynchronous crypto request
23*4882a593Smuzhiyun  *
24*4882a593Smuzhiyun  * Return:
25*4882a593Smuzhiyun  * Returns -EINPROGRESS or error
26*4882a593Smuzhiyun  */
27*4882a593Smuzhiyun int cc_send_request(struct cc_drvdata *drvdata, struct cc_crypto_req *cc_req,
28*4882a593Smuzhiyun 		    struct cc_hw_desc *desc, unsigned int len,
29*4882a593Smuzhiyun 		    struct crypto_async_request *req);
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun int cc_send_sync_request(struct cc_drvdata *drvdata,
32*4882a593Smuzhiyun 			 struct cc_crypto_req *cc_req, struct cc_hw_desc *desc,
33*4882a593Smuzhiyun 			 unsigned int len);
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun int send_request_init(struct cc_drvdata *drvdata, struct cc_hw_desc *desc,
36*4882a593Smuzhiyun 		      unsigned int len);
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun void complete_request(struct cc_drvdata *drvdata);
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun void cc_req_mgr_fini(struct cc_drvdata *drvdata);
41*4882a593Smuzhiyun 
42*4882a593Smuzhiyun #endif /*__REQUEST_MGR_H__*/
43