xref: /linux/drivers/crypto/intel/qat/qat_common/adf_bank_state.h (revision 44a8c96edd0ee9320a1ad87afc7b10f38e55d5ec)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* Copyright(c) 2025 Intel Corporation */
3 #ifndef ADF_BANK_STATE_H_
4 #define ADF_BANK_STATE_H_
5 
6 #include <linux/types.h>
7 
8 struct adf_accel_dev;
9 
10 struct ring_config {
11 	u64 base;
12 	u32 config;
13 	u32 head;
14 	u32 tail;
15 	u32 reserved0;
16 };
17 
18 struct adf_bank_state {
19 	u32 ringstat0;
20 	u32 ringstat1;
21 	u32 ringuostat;
22 	u32 ringestat;
23 	u32 ringnestat;
24 	u32 ringnfstat;
25 	u32 ringfstat;
26 	u32 ringcstat0;
27 	u32 ringcstat1;
28 	u32 ringcstat2;
29 	u32 ringcstat3;
30 	u32 iaintflagen;
31 	u32 iaintflagreg;
32 	u32 iaintflagsrcsel0;
33 	u32 iaintflagsrcsel1;
34 	u32 iaintcolen;
35 	u32 iaintcolctl;
36 	u32 iaintflagandcolen;
37 	u32 ringexpstat;
38 	u32 ringexpintenable;
39 	u32 ringsrvarben;
40 	u32 reserved0;
41 	struct ring_config rings[ADF_ETR_MAX_RINGS_PER_BANK];
42 };
43 
44 int adf_bank_state_restore(struct adf_accel_dev *accel_dev, u32 bank_number,
45 			   struct adf_bank_state *state);
46 int adf_bank_state_save(struct adf_accel_dev *accel_dev, u32 bank_number,
47 			struct adf_bank_state *state);
48 
49 #endif
50