Commit bd4be2f6 authored by Jie Wang's avatar Jie Wang Committed by Aichun Shi
Browse files

crypto: qat - relocate and rename get_service_enabled()

mainline inclusion
from mainline-v6.8-rc1
commit 4db87a5f9e3026d72e03bbdf1dac1dc5303e37f7
category: feature
bugzilla: https://gitee.com/openeuler/intel-kernel/issues/I9A5BW
CVE: N/A
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4db87a5f9e3026d72e03bbdf1dac1dc5303e37f7



-------------------------------------

Move the function get_service_enabled() from adf_4xxx_hw_data.c to
adf_cfg_services.c and rename it as adf_get_service_enabled().
This function is not specific to the 4xxx and will be used by
other QAT drivers.

This does not introduce any functional change.

Intel-SIG: commit 4db87a5f9e30 crypto: qat - relocate and rename get_service_enabled()
Backport to support QAT in-tree driver

Signed-off-by: default avatarJie Wang <jie.wang@intel.com>
Reviewed-by: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
[ Aichun Shi: amend commit log ]
Signed-off-by: default avatarAichun Shi <aichun.shi@intel.com>
parent 6230295d
Loading
Loading
Loading
Loading
+3 −26
Original line number Diff line number Diff line
@@ -120,29 +120,6 @@ static struct adf_hw_device_class adf_4xxx_class = {
	.instances = 0,
};

static int get_service_enabled(struct adf_accel_dev *accel_dev)
{
	char services[ADF_CFG_MAX_VAL_LEN_IN_BYTES] = {0};
	int ret;

	ret = adf_cfg_get_param_value(accel_dev, ADF_GENERAL_SEC,
				      ADF_SERVICES_ENABLED, services);
	if (ret) {
		dev_err(&GET_DEV(accel_dev),
			ADF_SERVICES_ENABLED " param not found\n");
		return ret;
	}

	ret = match_string(adf_cfg_services, ARRAY_SIZE(adf_cfg_services),
			   services);
	if (ret < 0)
		dev_err(&GET_DEV(accel_dev),
			"Invalid value of " ADF_SERVICES_ENABLED " param: %s\n",
			services);

	return ret;
}

static u32 get_accel_mask(struct adf_hw_device_data *self)
{
	return ADF_4XXX_ACCELERATORS_MASK;
@@ -275,7 +252,7 @@ static u32 get_accel_cap(struct adf_accel_dev *accel_dev)
		capabilities_dc &= ~ICP_ACCEL_CAPABILITIES_CNV_INTEGRITY64;
	}

	switch (get_service_enabled(accel_dev)) {
	switch (adf_get_service_enabled(accel_dev)) {
	case SVC_CY:
	case SVC_CY2:
		return capabilities_sym | capabilities_asym;
@@ -311,7 +288,7 @@ static enum dev_sku_info get_sku(struct adf_hw_device_data *self)

static const u32 *adf_get_arbiter_mapping(struct adf_accel_dev *accel_dev)
{
	switch (get_service_enabled(accel_dev)) {
	switch (adf_get_service_enabled(accel_dev)) {
	case SVC_DC:
		return thrd_to_arb_map_dc;
	case SVC_DCC:
@@ -420,7 +397,7 @@ static u32 uof_get_num_objs(void)

static const struct adf_fw_config *get_fw_config(struct adf_accel_dev *accel_dev)
{
	switch (get_service_enabled(accel_dev)) {
	switch (adf_get_service_enabled(accel_dev)) {
	case SVC_CY:
	case SVC_CY2:
		return adf_fw_cy_config;
+27 −0
Original line number Diff line number Diff line
@@ -2,6 +2,9 @@
/* Copyright(c) 2023 Intel Corporation */

#include <linux/export.h>
#include <linux/pci.h>
#include <linux/string.h>
#include "adf_cfg.h"
#include "adf_cfg_services.h"
#include "adf_cfg_strings.h"

@@ -18,3 +21,27 @@ const char *const adf_cfg_services[] = {
	[SVC_SYM_DC] = ADF_CFG_SYM_DC,
};
EXPORT_SYMBOL_GPL(adf_cfg_services);

int adf_get_service_enabled(struct adf_accel_dev *accel_dev)
{
	char services[ADF_CFG_MAX_VAL_LEN_IN_BYTES] = {0};
	int ret;

	ret = adf_cfg_get_param_value(accel_dev, ADF_GENERAL_SEC,
				      ADF_SERVICES_ENABLED, services);
	if (ret) {
		dev_err(&GET_DEV(accel_dev),
			ADF_SERVICES_ENABLED " param not found\n");
		return ret;
	}

	ret = match_string(adf_cfg_services, ARRAY_SIZE(adf_cfg_services),
			   services);
	if (ret < 0)
		dev_err(&GET_DEV(accel_dev),
			"Invalid value of " ADF_SERVICES_ENABLED " param: %s\n",
			services);

	return ret;
}
EXPORT_SYMBOL_GPL(adf_get_service_enabled);
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,8 @@

#include "adf_cfg_strings.h"

struct adf_accel_dev;

enum adf_services {
	SVC_CY = 0,
	SVC_CY2,
@@ -21,4 +23,6 @@ enum adf_services {

extern const char *const adf_cfg_services[SVC_COUNT];

int adf_get_service_enabled(struct adf_accel_dev *accel_dev);

#endif