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