crypto: qat - consolidate services structure
[ Upstream commit 71713766380712c8ab2d604605e7b0b20f977801 ] The data structure that associates a service id with its name is replicated across the driver. Remove duplication by moving this data structure to a new include file, adf_cfg_services.h in order to have consistency across the drivers. Note that the data structure is re-instantiated every time the new include is added to a compilation unit. Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Stable-dep-of: a238487f7965 ("crypto: qat - fix ring to service map for QAT GEN4") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
e71d8a3a85
commit
b7284784b8
|
@ -11,6 +11,7 @@
|
||||||
#include <adf_gen4_pm.h>
|
#include <adf_gen4_pm.h>
|
||||||
#include <adf_gen4_timer.h>
|
#include <adf_gen4_timer.h>
|
||||||
#include "adf_4xxx_hw_data.h"
|
#include "adf_4xxx_hw_data.h"
|
||||||
|
#include "adf_cfg_services.h"
|
||||||
#include "icp_qat_hw.h"
|
#include "icp_qat_hw.h"
|
||||||
|
|
||||||
enum adf_fw_objs {
|
enum adf_fw_objs {
|
||||||
|
@ -100,30 +101,6 @@ static struct adf_hw_device_class adf_4xxx_class = {
|
||||||
.instances = 0,
|
.instances = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum dev_services {
|
|
||||||
SVC_CY = 0,
|
|
||||||
SVC_CY2,
|
|
||||||
SVC_DC,
|
|
||||||
SVC_SYM,
|
|
||||||
SVC_ASYM,
|
|
||||||
SVC_DC_ASYM,
|
|
||||||
SVC_ASYM_DC,
|
|
||||||
SVC_DC_SYM,
|
|
||||||
SVC_SYM_DC,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char *const dev_cfg_services[] = {
|
|
||||||
[SVC_CY] = ADF_CFG_CY,
|
|
||||||
[SVC_CY2] = ADF_CFG_ASYM_SYM,
|
|
||||||
[SVC_DC] = ADF_CFG_DC,
|
|
||||||
[SVC_SYM] = ADF_CFG_SYM,
|
|
||||||
[SVC_ASYM] = ADF_CFG_ASYM,
|
|
||||||
[SVC_DC_ASYM] = ADF_CFG_DC_ASYM,
|
|
||||||
[SVC_ASYM_DC] = ADF_CFG_ASYM_DC,
|
|
||||||
[SVC_DC_SYM] = ADF_CFG_DC_SYM,
|
|
||||||
[SVC_SYM_DC] = ADF_CFG_SYM_DC,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int get_service_enabled(struct adf_accel_dev *accel_dev)
|
static int get_service_enabled(struct adf_accel_dev *accel_dev)
|
||||||
{
|
{
|
||||||
char services[ADF_CFG_MAX_VAL_LEN_IN_BYTES] = {0};
|
char services[ADF_CFG_MAX_VAL_LEN_IN_BYTES] = {0};
|
||||||
|
@ -137,7 +114,7 @@ static int get_service_enabled(struct adf_accel_dev *accel_dev)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = match_string(dev_cfg_services, ARRAY_SIZE(dev_cfg_services),
|
ret = match_string(adf_cfg_services, ARRAY_SIZE(adf_cfg_services),
|
||||||
services);
|
services);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
dev_err(&GET_DEV(accel_dev),
|
dev_err(&GET_DEV(accel_dev),
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include <adf_heartbeat.h>
|
#include <adf_heartbeat.h>
|
||||||
|
|
||||||
#include "adf_4xxx_hw_data.h"
|
#include "adf_4xxx_hw_data.h"
|
||||||
|
#include "adf_cfg_services.h"
|
||||||
#include "qat_compression.h"
|
#include "qat_compression.h"
|
||||||
#include "qat_crypto.h"
|
#include "qat_crypto.h"
|
||||||
#include "adf_transport_access_macros.h"
|
#include "adf_transport_access_macros.h"
|
||||||
|
@ -23,30 +24,6 @@ static const struct pci_device_id adf_pci_tbl[] = {
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, adf_pci_tbl);
|
MODULE_DEVICE_TABLE(pci, adf_pci_tbl);
|
||||||
|
|
||||||
enum configs {
|
|
||||||
DEV_CFG_CY = 0,
|
|
||||||
DEV_CFG_DC,
|
|
||||||
DEV_CFG_SYM,
|
|
||||||
DEV_CFG_ASYM,
|
|
||||||
DEV_CFG_ASYM_SYM,
|
|
||||||
DEV_CFG_ASYM_DC,
|
|
||||||
DEV_CFG_DC_ASYM,
|
|
||||||
DEV_CFG_SYM_DC,
|
|
||||||
DEV_CFG_DC_SYM,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const char * const services_operations[] = {
|
|
||||||
ADF_CFG_CY,
|
|
||||||
ADF_CFG_DC,
|
|
||||||
ADF_CFG_SYM,
|
|
||||||
ADF_CFG_ASYM,
|
|
||||||
ADF_CFG_ASYM_SYM,
|
|
||||||
ADF_CFG_ASYM_DC,
|
|
||||||
ADF_CFG_DC_ASYM,
|
|
||||||
ADF_CFG_SYM_DC,
|
|
||||||
ADF_CFG_DC_SYM,
|
|
||||||
};
|
|
||||||
|
|
||||||
static void adf_cleanup_accel(struct adf_accel_dev *accel_dev)
|
static void adf_cleanup_accel(struct adf_accel_dev *accel_dev)
|
||||||
{
|
{
|
||||||
if (accel_dev->hw_device) {
|
if (accel_dev->hw_device) {
|
||||||
|
@ -292,16 +269,16 @@ int adf_gen4_dev_config(struct adf_accel_dev *accel_dev)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
ret = sysfs_match_string(services_operations, services);
|
ret = sysfs_match_string(adf_cfg_services, services);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
switch (ret) {
|
switch (ret) {
|
||||||
case DEV_CFG_CY:
|
case SVC_CY:
|
||||||
case DEV_CFG_ASYM_SYM:
|
case SVC_CY2:
|
||||||
ret = adf_crypto_dev_config(accel_dev);
|
ret = adf_crypto_dev_config(accel_dev);
|
||||||
break;
|
break;
|
||||||
case DEV_CFG_DC:
|
case SVC_DC:
|
||||||
ret = adf_comp_dev_config(accel_dev);
|
ret = adf_comp_dev_config(accel_dev);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||||
|
/* Copyright(c) 2023 Intel Corporation */
|
||||||
|
#ifndef _ADF_CFG_SERVICES_H_
|
||||||
|
#define _ADF_CFG_SERVICES_H_
|
||||||
|
|
||||||
|
#include "adf_cfg_strings.h"
|
||||||
|
|
||||||
|
enum adf_services {
|
||||||
|
SVC_CY = 0,
|
||||||
|
SVC_CY2,
|
||||||
|
SVC_DC,
|
||||||
|
SVC_SYM,
|
||||||
|
SVC_ASYM,
|
||||||
|
SVC_DC_ASYM,
|
||||||
|
SVC_ASYM_DC,
|
||||||
|
SVC_DC_SYM,
|
||||||
|
SVC_SYM_DC,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const char *const adf_cfg_services[] = {
|
||||||
|
[SVC_CY] = ADF_CFG_CY,
|
||||||
|
[SVC_CY2] = ADF_CFG_ASYM_SYM,
|
||||||
|
[SVC_DC] = ADF_CFG_DC,
|
||||||
|
[SVC_SYM] = ADF_CFG_SYM,
|
||||||
|
[SVC_ASYM] = ADF_CFG_ASYM,
|
||||||
|
[SVC_DC_ASYM] = ADF_CFG_DC_ASYM,
|
||||||
|
[SVC_ASYM_DC] = ADF_CFG_ASYM_DC,
|
||||||
|
[SVC_DC_SYM] = ADF_CFG_DC_SYM,
|
||||||
|
[SVC_SYM_DC] = ADF_CFG_SYM_DC,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -5,6 +5,7 @@
|
||||||
#include <linux/pci.h>
|
#include <linux/pci.h>
|
||||||
#include "adf_accel_devices.h"
|
#include "adf_accel_devices.h"
|
||||||
#include "adf_cfg.h"
|
#include "adf_cfg.h"
|
||||||
|
#include "adf_cfg_services.h"
|
||||||
#include "adf_common_drv.h"
|
#include "adf_common_drv.h"
|
||||||
|
|
||||||
static const char * const state_operations[] = {
|
static const char * const state_operations[] = {
|
||||||
|
@ -84,18 +85,6 @@ static ssize_t state_store(struct device *dev, struct device_attribute *attr,
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char * const services_operations[] = {
|
|
||||||
ADF_CFG_CY,
|
|
||||||
ADF_CFG_DC,
|
|
||||||
ADF_CFG_SYM,
|
|
||||||
ADF_CFG_ASYM,
|
|
||||||
ADF_CFG_ASYM_SYM,
|
|
||||||
ADF_CFG_ASYM_DC,
|
|
||||||
ADF_CFG_DC_ASYM,
|
|
||||||
ADF_CFG_SYM_DC,
|
|
||||||
ADF_CFG_DC_SYM,
|
|
||||||
};
|
|
||||||
|
|
||||||
static ssize_t cfg_services_show(struct device *dev, struct device_attribute *attr,
|
static ssize_t cfg_services_show(struct device *dev, struct device_attribute *attr,
|
||||||
char *buf)
|
char *buf)
|
||||||
{
|
{
|
||||||
|
@ -130,7 +119,7 @@ static ssize_t cfg_services_store(struct device *dev, struct device_attribute *a
|
||||||
struct adf_accel_dev *accel_dev;
|
struct adf_accel_dev *accel_dev;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = sysfs_match_string(services_operations, buf);
|
ret = sysfs_match_string(adf_cfg_services, buf);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
@ -144,7 +133,7 @@ static ssize_t cfg_services_store(struct device *dev, struct device_attribute *a
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = adf_sysfs_update_dev_config(accel_dev, services_operations[ret]);
|
ret = adf_sysfs_update_dev_config(accel_dev, adf_cfg_services[ret]);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue