xref: /freebsd/sys/dev/qat/include/common/adf_common_drv.h (revision ded037e65e5239671b1292ec987a2e0894b217b5)
178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */
2*ded037e6SHareshx Sankar Raj /* Copyright(c) 2007-2025 Intel Corporation */
378ee8d1cSJulian Grajkowski #ifndef ADF_DRV_H
478ee8d1cSJulian Grajkowski #define ADF_DRV_H
578ee8d1cSJulian Grajkowski 
678ee8d1cSJulian Grajkowski #include <dev/pci/pcivar.h>
778ee8d1cSJulian Grajkowski #include "adf_accel_devices.h"
878ee8d1cSJulian Grajkowski #include "icp_qat_fw_loader_handle.h"
978ee8d1cSJulian Grajkowski #include "icp_qat_hal.h"
1078ee8d1cSJulian Grajkowski #include "adf_cfg_user.h"
11266b0663SKrzysztof Zdziarski #include "adf_uio.h"
12266b0663SKrzysztof Zdziarski #include "adf_uio_control.h"
1378ee8d1cSJulian Grajkowski 
14266b0663SKrzysztof Zdziarski #define QAT_UIO_IOC_MAGIC 'b'
1578ee8d1cSJulian Grajkowski #define ADF_MAJOR_VERSION 0
1678ee8d1cSJulian Grajkowski #define ADF_MINOR_VERSION 6
1778ee8d1cSJulian Grajkowski #define ADF_BUILD_VERSION 0
1878ee8d1cSJulian Grajkowski #define ADF_DRV_VERSION                                                        \
1978ee8d1cSJulian Grajkowski 	__stringify(ADF_MAJOR_VERSION) "." __stringify(                        \
2078ee8d1cSJulian Grajkowski 	    ADF_MINOR_VERSION) "." __stringify(ADF_BUILD_VERSION)
2178ee8d1cSJulian Grajkowski 
22266b0663SKrzysztof Zdziarski #define IOCTL_GET_BUNDLE_SIZE _IOR(QAT_UIO_IOC_MAGIC, 0, int32_t)
23266b0663SKrzysztof Zdziarski #define IOCTL_ALLOC_BUNDLE _IOW(QAT_UIO_IOC_MAGIC, 1, int)
24266b0663SKrzysztof Zdziarski #define IOCTL_GET_ACCEL_TYPE _IOR(QAT_UIO_IOC_MAGIC, 2, uint32_t)
25266b0663SKrzysztof Zdziarski #define IOCTL_ADD_MEM_FD _IOW(QAT_UIO_IOC_MAGIC, 3, int)
2678ee8d1cSJulian Grajkowski #define ADF_STATUS_RESTARTING 0
2778ee8d1cSJulian Grajkowski #define ADF_STATUS_STARTING 1
2878ee8d1cSJulian Grajkowski #define ADF_STATUS_CONFIGURED 2
2978ee8d1cSJulian Grajkowski #define ADF_STATUS_STARTED 3
3078ee8d1cSJulian Grajkowski #define ADF_STATUS_AE_INITIALISED 4
3178ee8d1cSJulian Grajkowski #define ADF_STATUS_AE_UCODE_LOADED 5
3278ee8d1cSJulian Grajkowski #define ADF_STATUS_AE_STARTED 6
3378ee8d1cSJulian Grajkowski #define ADF_STATUS_PF_RUNNING 7
3478ee8d1cSJulian Grajkowski #define ADF_STATUS_IRQ_ALLOCATED 8
3578ee8d1cSJulian Grajkowski #define ADF_PCIE_FLR_ATTEMPT 10
3678ee8d1cSJulian Grajkowski #define ADF_STATUS_SYSCTL_CTX_INITIALISED 9
3778ee8d1cSJulian Grajkowski 
3878ee8d1cSJulian Grajkowski #define PCI_EXP_AERUCS 0x104
3978ee8d1cSJulian Grajkowski 
4078ee8d1cSJulian Grajkowski /* PMISC BAR upper and lower offsets in PCIe config space */
4178ee8d1cSJulian Grajkowski #define ADF_PMISC_L_OFFSET 0x18
4278ee8d1cSJulian Grajkowski #define ADF_PMISC_U_OFFSET 0x1c
4378ee8d1cSJulian Grajkowski 
4478ee8d1cSJulian Grajkowski enum adf_dev_reset_mode { ADF_DEV_RESET_ASYNC = 0, ADF_DEV_RESET_SYNC };
4578ee8d1cSJulian Grajkowski 
4678ee8d1cSJulian Grajkowski enum adf_event {
4778ee8d1cSJulian Grajkowski 	ADF_EVENT_INIT = 0,
4878ee8d1cSJulian Grajkowski 	ADF_EVENT_START,
4978ee8d1cSJulian Grajkowski 	ADF_EVENT_STOP,
5078ee8d1cSJulian Grajkowski 	ADF_EVENT_SHUTDOWN,
5178ee8d1cSJulian Grajkowski 	ADF_EVENT_RESTARTING,
5278ee8d1cSJulian Grajkowski 	ADF_EVENT_RESTARTED,
5378ee8d1cSJulian Grajkowski 	ADF_EVENT_ERROR,
5478ee8d1cSJulian Grajkowski };
5578ee8d1cSJulian Grajkowski 
5678ee8d1cSJulian Grajkowski struct adf_state {
5778ee8d1cSJulian Grajkowski 	enum adf_event dev_state;
5878ee8d1cSJulian Grajkowski 	int dev_id;
5978ee8d1cSJulian Grajkowski };
6078ee8d1cSJulian Grajkowski 
6178ee8d1cSJulian Grajkowski struct service_hndl {
6278ee8d1cSJulian Grajkowski 	int (*event_hld)(struct adf_accel_dev *accel_dev, enum adf_event event);
6378ee8d1cSJulian Grajkowski 	unsigned long init_status[ADF_DEVS_ARRAY_SIZE];
6478ee8d1cSJulian Grajkowski 	unsigned long start_status[ADF_DEVS_ARRAY_SIZE];
6578ee8d1cSJulian Grajkowski 	char *name;
6678ee8d1cSJulian Grajkowski 	struct list_head list;
6778ee8d1cSJulian Grajkowski };
6878ee8d1cSJulian Grajkowski 
6978ee8d1cSJulian Grajkowski static inline int
get_current_node(void)7078ee8d1cSJulian Grajkowski get_current_node(void)
7178ee8d1cSJulian Grajkowski {
7278ee8d1cSJulian Grajkowski 	return PCPU_GET(domain);
7378ee8d1cSJulian Grajkowski }
7478ee8d1cSJulian Grajkowski 
7578ee8d1cSJulian Grajkowski int adf_service_register(struct service_hndl *service);
7678ee8d1cSJulian Grajkowski int adf_service_unregister(struct service_hndl *service);
7778ee8d1cSJulian Grajkowski 
7878ee8d1cSJulian Grajkowski int adf_dev_init(struct adf_accel_dev *accel_dev);
7978ee8d1cSJulian Grajkowski int adf_dev_start(struct adf_accel_dev *accel_dev);
8078ee8d1cSJulian Grajkowski int adf_dev_stop(struct adf_accel_dev *accel_dev);
8178ee8d1cSJulian Grajkowski void adf_dev_shutdown(struct adf_accel_dev *accel_dev);
8278ee8d1cSJulian Grajkowski int adf_dev_autoreset(struct adf_accel_dev *accel_dev);
8378ee8d1cSJulian Grajkowski int adf_dev_reset(struct adf_accel_dev *accel_dev,
8478ee8d1cSJulian Grajkowski 		  enum adf_dev_reset_mode mode);
8578ee8d1cSJulian Grajkowski int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
8678ee8d1cSJulian Grajkowski 			       enum adf_dev_reset_mode mode);
8778ee8d1cSJulian Grajkowski void adf_error_notifier(uintptr_t arg);
8878ee8d1cSJulian Grajkowski int adf_init_fatal_error_wq(void);
8978ee8d1cSJulian Grajkowski void adf_exit_fatal_error_wq(void);
9078ee8d1cSJulian Grajkowski int adf_notify_fatal_error(struct adf_accel_dev *accel_dev);
9178ee8d1cSJulian Grajkowski void adf_devmgr_update_class_index(struct adf_hw_device_data *hw_data);
9278ee8d1cSJulian Grajkowski void adf_clean_vf_map(bool);
9378ee8d1cSJulian Grajkowski int adf_sysctl_add_fw_versions(struct adf_accel_dev *accel_dev);
9478ee8d1cSJulian Grajkowski int adf_sysctl_remove_fw_versions(struct adf_accel_dev *accel_dev);
9578ee8d1cSJulian Grajkowski 
9678ee8d1cSJulian Grajkowski int adf_ctl_dev_register(void);
9778ee8d1cSJulian Grajkowski void adf_ctl_dev_unregister(void);
98266b0663SKrzysztof Zdziarski int adf_register_ctl_device_driver(void);
99266b0663SKrzysztof Zdziarski void adf_unregister_ctl_device_driver(void);
100266b0663SKrzysztof Zdziarski int adf_processes_dev_register(void);
101266b0663SKrzysztof Zdziarski void adf_processes_dev_unregister(void);
102266b0663SKrzysztof Zdziarski void adf_state_init(void);
103266b0663SKrzysztof Zdziarski void adf_state_destroy(void);
10478ee8d1cSJulian Grajkowski int adf_devmgr_add_dev(struct adf_accel_dev *accel_dev,
10578ee8d1cSJulian Grajkowski 		       struct adf_accel_dev *pf);
10678ee8d1cSJulian Grajkowski void adf_devmgr_rm_dev(struct adf_accel_dev *accel_dev,
10778ee8d1cSJulian Grajkowski 		       struct adf_accel_dev *pf);
10878ee8d1cSJulian Grajkowski struct list_head *adf_devmgr_get_head(void);
10978ee8d1cSJulian Grajkowski struct adf_accel_dev *adf_devmgr_get_dev_by_id(uint32_t id);
11078ee8d1cSJulian Grajkowski struct adf_accel_dev *adf_devmgr_get_first(void);
11178ee8d1cSJulian Grajkowski struct adf_accel_dev *adf_devmgr_pci_to_accel_dev(device_t pci_dev);
11278ee8d1cSJulian Grajkowski int adf_devmgr_verify_id(uint32_t *id);
11378ee8d1cSJulian Grajkowski void adf_devmgr_get_num_dev(uint32_t *num);
11478ee8d1cSJulian Grajkowski int adf_devmgr_in_reset(struct adf_accel_dev *accel_dev);
11578ee8d1cSJulian Grajkowski int adf_dev_started(struct adf_accel_dev *accel_dev);
11678ee8d1cSJulian Grajkowski int adf_dev_restarting_notify(struct adf_accel_dev *accel_dev);
11778ee8d1cSJulian Grajkowski int adf_dev_restarting_notify_sync(struct adf_accel_dev *accel_dev);
11878ee8d1cSJulian Grajkowski int adf_dev_restarted_notify(struct adf_accel_dev *accel_dev);
11978ee8d1cSJulian Grajkowski int adf_dev_stop_notify_sync(struct adf_accel_dev *accel_dev);
12078ee8d1cSJulian Grajkowski int adf_ae_init(struct adf_accel_dev *accel_dev);
12178ee8d1cSJulian Grajkowski int adf_ae_shutdown(struct adf_accel_dev *accel_dev);
12278ee8d1cSJulian Grajkowski int adf_ae_fw_load(struct adf_accel_dev *accel_dev);
12378ee8d1cSJulian Grajkowski void adf_ae_fw_release(struct adf_accel_dev *accel_dev);
12478ee8d1cSJulian Grajkowski int adf_ae_start(struct adf_accel_dev *accel_dev);
12578ee8d1cSJulian Grajkowski int adf_ae_stop(struct adf_accel_dev *accel_dev);
12678ee8d1cSJulian Grajkowski 
12778ee8d1cSJulian Grajkowski int adf_aer_store_ppaerucm_reg(device_t pdev,
12878ee8d1cSJulian Grajkowski 			       struct adf_hw_device_data *hw_data);
12978ee8d1cSJulian Grajkowski 
13078ee8d1cSJulian Grajkowski int adf_enable_aer(struct adf_accel_dev *accel_dev, device_t *adf);
13178ee8d1cSJulian Grajkowski void adf_disable_aer(struct adf_accel_dev *accel_dev);
13278ee8d1cSJulian Grajkowski void adf_reset_sbr(struct adf_accel_dev *accel_dev);
13378ee8d1cSJulian Grajkowski void adf_reset_flr(struct adf_accel_dev *accel_dev);
13478ee8d1cSJulian Grajkowski void adf_dev_pre_reset(struct adf_accel_dev *accel_dev);
13578ee8d1cSJulian Grajkowski void adf_dev_post_reset(struct adf_accel_dev *accel_dev);
13678ee8d1cSJulian Grajkowski void adf_dev_restore(struct adf_accel_dev *accel_dev);
13778ee8d1cSJulian Grajkowski int adf_init_aer(void);
13878ee8d1cSJulian Grajkowski void adf_exit_aer(void);
13978ee8d1cSJulian Grajkowski int adf_put_admin_msg_sync(struct adf_accel_dev *accel_dev,
14078ee8d1cSJulian Grajkowski 			   u32 ae,
14178ee8d1cSJulian Grajkowski 			   void *in,
14278ee8d1cSJulian Grajkowski 			   void *out);
14378ee8d1cSJulian Grajkowski struct icp_qat_fw_init_admin_req;
14478ee8d1cSJulian Grajkowski struct icp_qat_fw_init_admin_resp;
14578ee8d1cSJulian Grajkowski int adf_send_admin(struct adf_accel_dev *accel_dev,
14678ee8d1cSJulian Grajkowski 		   struct icp_qat_fw_init_admin_req *req,
14778ee8d1cSJulian Grajkowski 		   struct icp_qat_fw_init_admin_resp *resp,
14878ee8d1cSJulian Grajkowski 		   u32 ae_mask);
14978ee8d1cSJulian Grajkowski int adf_config_device(struct adf_accel_dev *accel_dev);
15078ee8d1cSJulian Grajkowski 
15178ee8d1cSJulian Grajkowski int adf_init_admin_comms(struct adf_accel_dev *accel_dev);
15278ee8d1cSJulian Grajkowski void adf_exit_admin_comms(struct adf_accel_dev *accel_dev);
15378ee8d1cSJulian Grajkowski int adf_send_admin_init(struct adf_accel_dev *accel_dev);
15478ee8d1cSJulian Grajkowski int adf_get_fw_timestamp(struct adf_accel_dev *accel_dev, u64 *timestamp);
15578ee8d1cSJulian Grajkowski int adf_get_fw_pke_stats(struct adf_accel_dev *accel_dev,
15678ee8d1cSJulian Grajkowski 			 u64 *suc_count,
15778ee8d1cSJulian Grajkowski 			 u64 *unsuc_count);
15878ee8d1cSJulian Grajkowski int adf_dev_measure_clock(struct adf_accel_dev *accel_dev,
15978ee8d1cSJulian Grajkowski 			  u32 *frequency,
16078ee8d1cSJulian Grajkowski 			  u32 min,
16178ee8d1cSJulian Grajkowski 			  u32 max);
16278ee8d1cSJulian Grajkowski int adf_clock_debugfs_add(struct adf_accel_dev *accel_dev);
16378ee8d1cSJulian Grajkowski u64 adf_clock_get_current_time(void);
16478ee8d1cSJulian Grajkowski int adf_init_arb(struct adf_accel_dev *accel_dev);
16578ee8d1cSJulian Grajkowski int adf_init_gen2_arb(struct adf_accel_dev *accel_dev);
16678ee8d1cSJulian Grajkowski void adf_exit_arb(struct adf_accel_dev *accel_dev);
16778ee8d1cSJulian Grajkowski void adf_disable_arb(struct adf_accel_dev *accel_dev);
16878ee8d1cSJulian Grajkowski void adf_update_ring_arb(struct adf_etr_ring_data *ring);
169a977168cSMichal Gulbicki void adf_enable_ring_arb(struct adf_accel_dev *accel_dev,
170a977168cSMichal Gulbicki 			 void *csr_addr,
171a977168cSMichal Gulbicki 			 unsigned int bank_nr,
172a977168cSMichal Gulbicki 			 unsigned int mask);
173a977168cSMichal Gulbicki void adf_disable_ring_arb(struct adf_accel_dev *accel_dev,
174a977168cSMichal Gulbicki 			  void *csr_addr,
175a977168cSMichal Gulbicki 			  unsigned int bank_nr,
176a977168cSMichal Gulbicki 			  unsigned int mask);
17778ee8d1cSJulian Grajkowski int adf_set_ssm_wdtimer(struct adf_accel_dev *accel_dev);
178266b0663SKrzysztof Zdziarski void adf_update_uio_ring_arb(struct adf_uio_control_bundle *bundle);
17978ee8d1cSJulian Grajkowski struct adf_accel_dev *adf_devmgr_get_dev_by_bdf(struct adf_pci_address *addr);
18078ee8d1cSJulian Grajkowski struct adf_accel_dev *adf_devmgr_get_dev_by_pci_bus(u8 bus);
18178ee8d1cSJulian Grajkowski int adf_get_vf_nr(struct adf_pci_address *vf_pci_addr, int *vf_nr);
18278ee8d1cSJulian Grajkowski u32 adf_get_slices_for_svc(struct adf_accel_dev *accel_dev,
18378ee8d1cSJulian Grajkowski 			   enum adf_svc_type svc);
18478ee8d1cSJulian Grajkowski bool adf_is_bdf_equal(struct adf_pci_address *bdf1,
18578ee8d1cSJulian Grajkowski 		      struct adf_pci_address *bdf2);
18678ee8d1cSJulian Grajkowski int adf_is_vf_nr_valid(struct adf_accel_dev *accel_dev, int vf_nr);
18778ee8d1cSJulian Grajkowski void adf_dev_get(struct adf_accel_dev *accel_dev);
18878ee8d1cSJulian Grajkowski void adf_dev_put(struct adf_accel_dev *accel_dev);
18978ee8d1cSJulian Grajkowski int adf_dev_in_use(struct adf_accel_dev *accel_dev);
19078ee8d1cSJulian Grajkowski int adf_init_etr_data(struct adf_accel_dev *accel_dev);
19178ee8d1cSJulian Grajkowski void adf_cleanup_etr_data(struct adf_accel_dev *accel_dev);
19278ee8d1cSJulian Grajkowski 
19378ee8d1cSJulian Grajkowski struct qat_crypto_instance *qat_crypto_get_instance_node(int node);
19478ee8d1cSJulian Grajkowski void qat_crypto_put_instance(struct qat_crypto_instance *inst);
19578ee8d1cSJulian Grajkowski void qat_alg_callback(void *resp);
19678ee8d1cSJulian Grajkowski void qat_alg_asym_callback(void *resp);
19778ee8d1cSJulian Grajkowski int qat_algs_register(void);
19878ee8d1cSJulian Grajkowski void qat_algs_unregister(void);
19978ee8d1cSJulian Grajkowski int qat_asym_algs_register(void);
20078ee8d1cSJulian Grajkowski void qat_asym_algs_unregister(void);
20178ee8d1cSJulian Grajkowski 
20278ee8d1cSJulian Grajkowski int adf_isr_resource_alloc(struct adf_accel_dev *accel_dev);
20378ee8d1cSJulian Grajkowski void adf_isr_resource_free(struct adf_accel_dev *accel_dev);
20478ee8d1cSJulian Grajkowski int adf_vf_isr_resource_alloc(struct adf_accel_dev *accel_dev);
20578ee8d1cSJulian Grajkowski void adf_vf_isr_resource_free(struct adf_accel_dev *accel_dev);
206266b0663SKrzysztof Zdziarski int adf_pfvf_comms_disabled(struct adf_accel_dev *accel_dev);
20778ee8d1cSJulian Grajkowski int qat_hal_init(struct adf_accel_dev *accel_dev);
20878ee8d1cSJulian Grajkowski void qat_hal_deinit(struct icp_qat_fw_loader_handle *handle);
209a977168cSMichal Gulbicki int qat_hal_start(struct icp_qat_fw_loader_handle *handle);
21078ee8d1cSJulian Grajkowski void qat_hal_stop(struct icp_qat_fw_loader_handle *handle,
21178ee8d1cSJulian Grajkowski 		  unsigned char ae,
21278ee8d1cSJulian Grajkowski 		  unsigned int ctx_mask);
21378ee8d1cSJulian Grajkowski void qat_hal_reset(struct icp_qat_fw_loader_handle *handle);
21478ee8d1cSJulian Grajkowski int qat_hal_clr_reset(struct icp_qat_fw_loader_handle *handle);
21578ee8d1cSJulian Grajkowski void qat_hal_set_live_ctx(struct icp_qat_fw_loader_handle *handle,
21678ee8d1cSJulian Grajkowski 			  unsigned char ae,
21778ee8d1cSJulian Grajkowski 			  unsigned int ctx_mask);
21878ee8d1cSJulian Grajkowski int qat_hal_check_ae_active(struct icp_qat_fw_loader_handle *handle,
21978ee8d1cSJulian Grajkowski 			    unsigned int ae);
22078ee8d1cSJulian Grajkowski int qat_hal_set_ae_lm_mode(struct icp_qat_fw_loader_handle *handle,
22178ee8d1cSJulian Grajkowski 			   unsigned char ae,
22278ee8d1cSJulian Grajkowski 			   enum icp_qat_uof_regtype lm_type,
22378ee8d1cSJulian Grajkowski 			   unsigned char mode);
22478ee8d1cSJulian Grajkowski void qat_hal_set_ae_tindex_mode(struct icp_qat_fw_loader_handle *handle,
22578ee8d1cSJulian Grajkowski 				unsigned char ae,
22678ee8d1cSJulian Grajkowski 				unsigned char mode);
22778ee8d1cSJulian Grajkowski void qat_hal_set_ae_scs_mode(struct icp_qat_fw_loader_handle *handle,
22878ee8d1cSJulian Grajkowski 			     unsigned char ae,
22978ee8d1cSJulian Grajkowski 			     unsigned char mode);
23078ee8d1cSJulian Grajkowski int qat_hal_set_ae_ctx_mode(struct icp_qat_fw_loader_handle *handle,
23178ee8d1cSJulian Grajkowski 			    unsigned char ae,
23278ee8d1cSJulian Grajkowski 			    unsigned char mode);
23378ee8d1cSJulian Grajkowski int qat_hal_set_ae_nn_mode(struct icp_qat_fw_loader_handle *handle,
23478ee8d1cSJulian Grajkowski 			   unsigned char ae,
23578ee8d1cSJulian Grajkowski 			   unsigned char mode);
23678ee8d1cSJulian Grajkowski void qat_hal_set_pc(struct icp_qat_fw_loader_handle *handle,
23778ee8d1cSJulian Grajkowski 		    unsigned char ae,
23878ee8d1cSJulian Grajkowski 		    unsigned int ctx_mask,
23978ee8d1cSJulian Grajkowski 		    unsigned int upc);
24078ee8d1cSJulian Grajkowski void qat_hal_wr_uwords(struct icp_qat_fw_loader_handle *handle,
24178ee8d1cSJulian Grajkowski 		       unsigned char ae,
24278ee8d1cSJulian Grajkowski 		       unsigned int uaddr,
24378ee8d1cSJulian Grajkowski 		       unsigned int words_num,
24478ee8d1cSJulian Grajkowski 		       const uint64_t *uword);
24578ee8d1cSJulian Grajkowski void qat_hal_wr_coalesce_uwords(struct icp_qat_fw_loader_handle *handle,
24678ee8d1cSJulian Grajkowski 				unsigned char ae,
24778ee8d1cSJulian Grajkowski 				unsigned int uaddr,
24878ee8d1cSJulian Grajkowski 				unsigned int words_num,
24978ee8d1cSJulian Grajkowski 				uint64_t *uword);
25078ee8d1cSJulian Grajkowski 
25178ee8d1cSJulian Grajkowski void qat_hal_wr_umem(struct icp_qat_fw_loader_handle *handle,
25278ee8d1cSJulian Grajkowski 		     unsigned char ae,
25378ee8d1cSJulian Grajkowski 		     unsigned int uword_addr,
25478ee8d1cSJulian Grajkowski 		     unsigned int words_num,
25578ee8d1cSJulian Grajkowski 		     unsigned int *data);
25678ee8d1cSJulian Grajkowski int qat_hal_get_ins_num(void);
25778ee8d1cSJulian Grajkowski int qat_hal_batch_wr_lm(struct icp_qat_fw_loader_handle *handle,
25878ee8d1cSJulian Grajkowski 			unsigned char ae,
25978ee8d1cSJulian Grajkowski 			struct icp_qat_uof_batch_init *lm_init_header);
26078ee8d1cSJulian Grajkowski int qat_hal_init_gpr(struct icp_qat_fw_loader_handle *handle,
26178ee8d1cSJulian Grajkowski 		     unsigned char ae,
26278ee8d1cSJulian Grajkowski 		     unsigned long ctx_mask,
26378ee8d1cSJulian Grajkowski 		     enum icp_qat_uof_regtype reg_type,
26478ee8d1cSJulian Grajkowski 		     unsigned short reg_num,
26578ee8d1cSJulian Grajkowski 		     unsigned int regdata);
26678ee8d1cSJulian Grajkowski int qat_hal_init_wr_xfer(struct icp_qat_fw_loader_handle *handle,
26778ee8d1cSJulian Grajkowski 			 unsigned char ae,
26878ee8d1cSJulian Grajkowski 			 unsigned long ctx_mask,
26978ee8d1cSJulian Grajkowski 			 enum icp_qat_uof_regtype reg_type,
27078ee8d1cSJulian Grajkowski 			 unsigned short reg_num,
27178ee8d1cSJulian Grajkowski 			 unsigned int regdata);
27278ee8d1cSJulian Grajkowski int qat_hal_init_rd_xfer(struct icp_qat_fw_loader_handle *handle,
27378ee8d1cSJulian Grajkowski 			 unsigned char ae,
27478ee8d1cSJulian Grajkowski 			 unsigned long ctx_mask,
27578ee8d1cSJulian Grajkowski 			 enum icp_qat_uof_regtype reg_type,
27678ee8d1cSJulian Grajkowski 			 unsigned short reg_num,
27778ee8d1cSJulian Grajkowski 			 unsigned int regdata);
27878ee8d1cSJulian Grajkowski int qat_hal_init_nn(struct icp_qat_fw_loader_handle *handle,
27978ee8d1cSJulian Grajkowski 		    unsigned char ae,
28078ee8d1cSJulian Grajkowski 		    unsigned long ctx_mask,
28178ee8d1cSJulian Grajkowski 		    unsigned short reg_num,
28278ee8d1cSJulian Grajkowski 		    unsigned int regdata);
28378ee8d1cSJulian Grajkowski int qat_hal_wr_lm(struct icp_qat_fw_loader_handle *handle,
28478ee8d1cSJulian Grajkowski 		  unsigned char ae,
28578ee8d1cSJulian Grajkowski 		  unsigned short lm_addr,
28678ee8d1cSJulian Grajkowski 		  unsigned int value);
28778ee8d1cSJulian Grajkowski int qat_uclo_wr_all_uimage(struct icp_qat_fw_loader_handle *handle);
28878ee8d1cSJulian Grajkowski void qat_uclo_del_obj(struct icp_qat_fw_loader_handle *handle);
28978ee8d1cSJulian Grajkowski void qat_uclo_del_mof(struct icp_qat_fw_loader_handle *handle);
29078ee8d1cSJulian Grajkowski int qat_uclo_wr_mimage(struct icp_qat_fw_loader_handle *handle,
29178ee8d1cSJulian Grajkowski 		       const void *addr_ptr,
29278ee8d1cSJulian Grajkowski 		       int mem_size);
29378ee8d1cSJulian Grajkowski int qat_uclo_map_obj(struct icp_qat_fw_loader_handle *handle,
29478ee8d1cSJulian Grajkowski 		     const void *addr_ptr,
29578ee8d1cSJulian Grajkowski 		     u32 mem_size,
29678ee8d1cSJulian Grajkowski 		     const char *obj_name);
29778ee8d1cSJulian Grajkowski 
29878ee8d1cSJulian Grajkowski void qat_hal_get_scs_neigh_ae(unsigned char ae, unsigned char *ae_neigh);
29978ee8d1cSJulian Grajkowski int qat_uclo_set_cfg_ae_mask(struct icp_qat_fw_loader_handle *handle,
30078ee8d1cSJulian Grajkowski 			     unsigned int cfg_ae_mask);
30178ee8d1cSJulian Grajkowski int adf_init_vf_wq(void);
30278ee8d1cSJulian Grajkowski void adf_exit_vf_wq(void);
303266b0663SKrzysztof Zdziarski void adf_flush_vf_wq(struct adf_accel_dev *accel_dev);
304266b0663SKrzysztof Zdziarski int adf_pf2vf_handle_pf_restarting(struct adf_accel_dev *accel_dev);
305266b0663SKrzysztof Zdziarski int adf_pf2vf_handle_pf_rp_reset(struct adf_accel_dev *accel_dev,
306266b0663SKrzysztof Zdziarski 				 struct pfvf_message msg);
307*ded037e6SHareshx Sankar Raj int adf_pf2vf_handle_pf_error(struct adf_accel_dev *accel_dev);
308266b0663SKrzysztof Zdziarski bool adf_recv_and_handle_pf2vf_msg(struct adf_accel_dev *accel_dev);
30978ee8d1cSJulian Grajkowski static inline int
adf_sriov_configure(device_t * pdev,int numvfs)31078ee8d1cSJulian Grajkowski adf_sriov_configure(device_t *pdev, int numvfs)
31178ee8d1cSJulian Grajkowski {
31278ee8d1cSJulian Grajkowski 	return 0;
31378ee8d1cSJulian Grajkowski }
31478ee8d1cSJulian Grajkowski 
31578ee8d1cSJulian Grajkowski static inline void
adf_disable_sriov(struct adf_accel_dev * accel_dev)31678ee8d1cSJulian Grajkowski adf_disable_sriov(struct adf_accel_dev *accel_dev)
31778ee8d1cSJulian Grajkowski {
31878ee8d1cSJulian Grajkowski }
31978ee8d1cSJulian Grajkowski 
32078ee8d1cSJulian Grajkowski static inline void
adf_vf2pf_handler(struct adf_accel_vf_info * vf_info)32178ee8d1cSJulian Grajkowski adf_vf2pf_handler(struct adf_accel_vf_info *vf_info)
32278ee8d1cSJulian Grajkowski {
32378ee8d1cSJulian Grajkowski }
32478ee8d1cSJulian Grajkowski 
32578ee8d1cSJulian Grajkowski static inline int
adf_init_pf_wq(void)32678ee8d1cSJulian Grajkowski adf_init_pf_wq(void)
32778ee8d1cSJulian Grajkowski {
32878ee8d1cSJulian Grajkowski 	return 0;
32978ee8d1cSJulian Grajkowski }
33078ee8d1cSJulian Grajkowski 
33178ee8d1cSJulian Grajkowski static inline void
adf_exit_pf_wq(void)33278ee8d1cSJulian Grajkowski adf_exit_pf_wq(void)
33378ee8d1cSJulian Grajkowski {
33478ee8d1cSJulian Grajkowski }
33578ee8d1cSJulian Grajkowski #endif
336