Commit 2990d2ed authored by Giovanni Cabiddu's avatar Giovanni Cabiddu Committed by Herbert Xu
Browse files

crypto: qat - refactor fw config related functions



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: default avatarGiovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: default avatarDamian Muszynski <damian.muszynski@intel.com>
Reviewed-by: default avatarTero Kristo <tero.kristo@linux.intel.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 99b1c982
Loading
Loading
Loading
Loading
+28 −41
Original line number Diff line number Diff line
@@ -395,41 +395,43 @@ 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;

@@ -452,28 +454,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;
}

static void adf_gen4_set_err_mask(struct adf_dev_err_mask *dev_err_mask)