crypto: qat - refactor fw config related functions

[ Upstream commit 2990d2edac ]

The logic that selects the correct adf_fw_config structure based on the
configured service is replicated twice in the uof_get_name() and
uof_get_ae_mask() functions. Refactor the code so that there is no
replication.

This does not introduce any functional change.

Signed-off-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Damian Muszynski <damian.muszynski@intel.com>
Reviewed-by: Tero Kristo <tero.kristo@linux.intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Stable-dep-of: a238487f79 ("crypto: qat - fix ring to service map for QAT GEN4")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Giovanni Cabiddu 2023-10-20 15:49:21 +02:00 committed by Greg Kroah-Hartman
parent 2e513f6bc7
commit a7be12fbac

View file

@ -394,40 +394,42 @@ static u32 uof_get_num_objs(void)
return ARRAY_SIZE(adf_fw_cy_config);
}
static const char *uof_get_name(struct adf_accel_dev *accel_dev, u32 obj_num,
const char * const fw_objs[], int num_objs)
static const struct adf_fw_config *get_fw_config(struct adf_accel_dev *accel_dev)
{
int id;
switch (get_service_enabled(accel_dev)) {
case SVC_CY:
case SVC_CY2:
id = adf_fw_cy_config[obj_num].obj;
break;
return adf_fw_cy_config;
case SVC_DC:
id = adf_fw_dc_config[obj_num].obj;
break;
return adf_fw_dc_config;
case SVC_DCC:
id = adf_fw_dcc_config[obj_num].obj;
break;
return adf_fw_dcc_config;
case SVC_SYM:
id = adf_fw_sym_config[obj_num].obj;
break;
return adf_fw_sym_config;
case SVC_ASYM:
id = adf_fw_asym_config[obj_num].obj;
break;
return adf_fw_asym_config;
case SVC_ASYM_DC:
case SVC_DC_ASYM:
id = adf_fw_asym_dc_config[obj_num].obj;
break;
return adf_fw_asym_dc_config;
case SVC_SYM_DC:
case SVC_DC_SYM:
id = adf_fw_sym_dc_config[obj_num].obj;
break;
return adf_fw_sym_dc_config;
default:
id = -EINVAL;
break;
return NULL;
}
}
static const char *uof_get_name(struct adf_accel_dev *accel_dev, u32 obj_num,
const char * const fw_objs[], int num_objs)
{
const struct adf_fw_config *fw_config;
int id;
fw_config = get_fw_config(accel_dev);
if (fw_config)
id = fw_config[obj_num].obj;
else
id = -EINVAL;
if (id < 0 || id > num_objs)
return NULL;
@ -451,28 +453,13 @@ static const char *uof_get_name_402xx(struct adf_accel_dev *accel_dev, u32 obj_n
static u32 uof_get_ae_mask(struct adf_accel_dev *accel_dev, u32 obj_num)
{
switch (get_service_enabled(accel_dev)) {
case SVC_CY:
return adf_fw_cy_config[obj_num].ae_mask;
case SVC_DC:
return adf_fw_dc_config[obj_num].ae_mask;
case SVC_DCC:
return adf_fw_dcc_config[obj_num].ae_mask;
case SVC_CY2:
return adf_fw_cy_config[obj_num].ae_mask;
case SVC_SYM:
return adf_fw_sym_config[obj_num].ae_mask;
case SVC_ASYM:
return adf_fw_asym_config[obj_num].ae_mask;
case SVC_ASYM_DC:
case SVC_DC_ASYM:
return adf_fw_asym_dc_config[obj_num].ae_mask;
case SVC_SYM_DC:
case SVC_DC_SYM:
return adf_fw_sym_dc_config[obj_num].ae_mask;
default:
const struct adf_fw_config *fw_config;
fw_config = get_fw_config(accel_dev);
if (!fw_config)
return 0;
}
return fw_config[obj_num].ae_mask;
}
void adf_init_hw_data_4xxx(struct adf_hw_device_data *hw_data, u32 dev_id)