mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
crypto: qat - add interface for live migration
Extend the driver with a new interface to be used for VF live migration. This allows to create and destroy a qat_mig_dev object that contains a set of methods to allow to save and restore the state of QAT VF. This interface will be used by the qat-vfio-pci module. Signed-off-by: Xin Zeng <xin.zeng@intel.com> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include <linux/pci.h>
|
||||
#include <linux/ratelimit.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/qat/qat_mig_dev.h>
|
||||
#include "adf_cfg_common.h"
|
||||
#include "adf_rl.h"
|
||||
#include "adf_telemetry.h"
|
||||
@@ -258,6 +259,20 @@ struct adf_dc_ops {
|
||||
void (*build_deflate_ctx)(void *ctx);
|
||||
};
|
||||
|
||||
struct qat_migdev_ops {
|
||||
int (*init)(struct qat_mig_dev *mdev);
|
||||
void (*cleanup)(struct qat_mig_dev *mdev);
|
||||
void (*reset)(struct qat_mig_dev *mdev);
|
||||
int (*open)(struct qat_mig_dev *mdev);
|
||||
void (*close)(struct qat_mig_dev *mdev);
|
||||
int (*suspend)(struct qat_mig_dev *mdev);
|
||||
int (*resume)(struct qat_mig_dev *mdev);
|
||||
int (*save_state)(struct qat_mig_dev *mdev);
|
||||
int (*save_setup)(struct qat_mig_dev *mdev);
|
||||
int (*load_state)(struct qat_mig_dev *mdev);
|
||||
int (*load_setup)(struct qat_mig_dev *mdev, int size);
|
||||
};
|
||||
|
||||
struct adf_dev_err_mask {
|
||||
u32 cppagentcmdpar_mask;
|
||||
u32 parerr_ath_cph_mask;
|
||||
@@ -325,6 +340,7 @@ struct adf_hw_device_data {
|
||||
struct adf_dev_err_mask dev_err_mask;
|
||||
struct adf_rl_hw_data rl_data;
|
||||
struct adf_tl_hw_data tl_data;
|
||||
struct qat_migdev_ops vfmig_ops;
|
||||
const char *fw_name;
|
||||
const char *fw_mmp_name;
|
||||
u32 fuses;
|
||||
@@ -381,6 +397,7 @@ struct adf_hw_device_data {
|
||||
#define GET_CSR_OPS(accel_dev) (&(accel_dev)->hw_device->csr_ops)
|
||||
#define GET_PFVF_OPS(accel_dev) (&(accel_dev)->hw_device->pfvf_ops)
|
||||
#define GET_DC_OPS(accel_dev) (&(accel_dev)->hw_device->dc_ops)
|
||||
#define GET_VFMIG_OPS(accel_dev) (&(accel_dev)->hw_device->vfmig_ops)
|
||||
#define GET_TL_DATA(accel_dev) GET_HW_DATA(accel_dev)->tl_data
|
||||
#define accel_to_pci_dev(accel_ptr) accel_ptr->accel_pci_dev.pci_dev
|
||||
|
||||
|
||||
Reference in New Issue
Block a user