Files
linux/drivers/crypto/intel/qat/qat_common/adf_gen6_shared.c
Małgorzata Mielnik 26abce2510 crypto: qat - add live migration enablers for GEN6 devices
The current implementation of the QAT live migration enablers is exclusive
to QAT GEN4 devices and resides within QAT GEN4 specific files. However,
the underlying mechanisms, such as the relevant CSRs and offsets,
can be shared between QAT GEN4 and QAT GEN6 devices.

Add the necessary enablers required to implement live migration for QAT
GEN6 devices to the abstraction layer to allow leveraging the existing
QAT GEN4 implementation.

Signed-off-by: Małgorzata Mielnik <malgorzata.mielnik@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2025-07-18 20:51:59 +10:00

57 lines
1.6 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
/* Copyright(c) 2025 Intel Corporation */
#include <linux/export.h>
#include "adf_gen4_config.h"
#include "adf_gen4_hw_csr_data.h"
#include "adf_gen4_pfvf.h"
#include "adf_gen4_vf_mig.h"
#include "adf_gen6_shared.h"
struct adf_accel_dev;
struct adf_pfvf_ops;
struct adf_hw_csr_ops;
/*
* QAT GEN4 and GEN6 devices often differ in terms of supported features,
* options and internal logic. However, some of the mechanisms and register
* layout are shared between those two GENs. This file serves as an abstraction
* layer that allows to use existing GEN4 implementation that is also
* applicable to GEN6 without additional overhead and complexity.
*/
void adf_gen6_init_pf_pfvf_ops(struct adf_pfvf_ops *pfvf_ops)
{
adf_gen4_init_pf_pfvf_ops(pfvf_ops);
}
EXPORT_SYMBOL_GPL(adf_gen6_init_pf_pfvf_ops);
void adf_gen6_init_hw_csr_ops(struct adf_hw_csr_ops *csr_ops)
{
return adf_gen4_init_hw_csr_ops(csr_ops);
}
EXPORT_SYMBOL_GPL(adf_gen6_init_hw_csr_ops);
int adf_gen6_cfg_dev_init(struct adf_accel_dev *accel_dev)
{
return adf_gen4_cfg_dev_init(accel_dev);
}
EXPORT_SYMBOL_GPL(adf_gen6_cfg_dev_init);
int adf_gen6_comp_dev_config(struct adf_accel_dev *accel_dev)
{
return adf_comp_dev_config(accel_dev);
}
EXPORT_SYMBOL_GPL(adf_gen6_comp_dev_config);
int adf_gen6_no_dev_config(struct adf_accel_dev *accel_dev)
{
return adf_no_dev_config(accel_dev);
}
EXPORT_SYMBOL_GPL(adf_gen6_no_dev_config);
void adf_gen6_init_vf_mig_ops(struct qat_migdev_ops *vfmig_ops)
{
adf_gen4_init_vf_mig_ops(vfmig_ops);
}
EXPORT_SYMBOL_GPL(adf_gen6_init_vf_mig_ops);