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