xref: /linux/drivers/crypto/intel/qat/qat_common/adf_anti_rb.h (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1*6ac142bfSSuman Kumar Chakraborty /* SPDX-License-Identifier: GPL-2.0-only */
2*6ac142bfSSuman Kumar Chakraborty /* Copyright(c) 2026 Intel Corporation */
3*6ac142bfSSuman Kumar Chakraborty #ifndef ADF_ANTI_RB_H_
4*6ac142bfSSuman Kumar Chakraborty #define ADF_ANTI_RB_H_
5*6ac142bfSSuman Kumar Chakraborty 
6*6ac142bfSSuman Kumar Chakraborty #include <linux/types.h>
7*6ac142bfSSuman Kumar Chakraborty 
8*6ac142bfSSuman Kumar Chakraborty #define GET_ANTI_RB_DATA(accel_dev) (&(accel_dev)->hw_device->anti_rb_data)
9*6ac142bfSSuman Kumar Chakraborty 
10*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_NO_STS		0x00
11*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_PASS_STS	0x01
12*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_RETRY_STS	0x02
13*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_FAIL_STS	0x03
14*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_RETRY_MS	250
15*6ac142bfSSuman Kumar Chakraborty #define ADF_SVN_STS_MASK	GENMASK(7, 0)
16*6ac142bfSSuman Kumar Chakraborty 
17*6ac142bfSSuman Kumar Chakraborty enum anti_rb {
18*6ac142bfSSuman Kumar Chakraborty 	ARB_ENFORCED_MIN_SVN,
19*6ac142bfSSuman Kumar Chakraborty 	ARB_PERMANENT_MIN_SVN,
20*6ac142bfSSuman Kumar Chakraborty 	ARB_ACTIVE_SVN,
21*6ac142bfSSuman Kumar Chakraborty };
22*6ac142bfSSuman Kumar Chakraborty 
23*6ac142bfSSuman Kumar Chakraborty struct adf_accel_dev;
24*6ac142bfSSuman Kumar Chakraborty struct pci_dev;
25*6ac142bfSSuman Kumar Chakraborty 
26*6ac142bfSSuman Kumar Chakraborty struct adf_anti_rb_hw_data {
27*6ac142bfSSuman Kumar Chakraborty 	bool (*anti_rb_enabled)(struct adf_accel_dev *accel_dev);
28*6ac142bfSSuman Kumar Chakraborty 	u32 svncheck_offset;
29*6ac142bfSSuman Kumar Chakraborty 	u32 svncheck_retry;
30*6ac142bfSSuman Kumar Chakraborty 	bool sysfs_added;
31*6ac142bfSSuman Kumar Chakraborty };
32*6ac142bfSSuman Kumar Chakraborty 
33*6ac142bfSSuman Kumar Chakraborty int adf_anti_rb_commit(struct adf_accel_dev *accel_dev);
34*6ac142bfSSuman Kumar Chakraborty int adf_anti_rb_query(struct adf_accel_dev *accel_dev, enum anti_rb cmd, u8 *svn);
35*6ac142bfSSuman Kumar Chakraborty int adf_anti_rb_check(struct pci_dev *pdev);
36*6ac142bfSSuman Kumar Chakraborty 
37*6ac142bfSSuman Kumar Chakraborty #endif /* ADF_ANTI_RB_H_ */
38