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
8struct adf_accel_dev;
9
10struct ring_config {
11 u64 base;
12 u32 config;
13 u32 head;
14 u32 tail;
15 u32 reserved0;
16};
17
18struct 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
44int adf_bank_state_restore(struct adf_accel_dev *accel_dev, u32 bank_number,
45 struct adf_bank_state *state);
46int adf_bank_state_save(struct adf_accel_dev *accel_dev, u32 bank_number,
47 struct adf_bank_state *state);
48
49#endif
50

source code of linux/drivers/crypto/intel/qat/qat_common/adf_bank_state.h