Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/qat/qat_common/adf_accel_engine.c
Show First 20 Lines • Show All 93 Lines • ▼ Show 20 Lines | if (hw_device->get_objs_num) | ||||
max_objs = hw_device->get_objs_num(accel_dev); | max_objs = hw_device->get_objs_num(accel_dev); | ||||
for (i = max_objs - 1; i >= 0; i--) { | for (i = max_objs - 1; i >= 0; i--) { | ||||
/* obj_name is used to indicate the firmware name in MOF, | /* obj_name is used to indicate the firmware name in MOF, | ||||
* config unit0 must be loaded at end for authentication | * config unit0 must be loaded at end for authentication | ||||
*/ | */ | ||||
if (hw_device->get_obj_name && hw_device->get_obj_cfg_ae_mask) { | if (hw_device->get_obj_name && hw_device->get_obj_cfg_ae_mask) { | ||||
unsigned long service_mask = hw_device->service_mask; | unsigned long service_mask = hw_device->service_mask; | ||||
enum adf_accel_unit_services service_type = | |||||
ADF_ACCEL_SERVICE_NULL; | |||||
if (hw_device->service_mask && | if (hw_device->get_service_type) | ||||
!(test_bit(i, &service_mask))) | service_type = | ||||
hw_device->get_service_type(accel_dev, i); | |||||
else | |||||
service_type = BIT(i); | |||||
if (service_mask && !(service_mask & service_type)) | |||||
continue; | continue; | ||||
obj_name = hw_device->get_obj_name(accel_dev, BIT(i)); | |||||
obj_name = | |||||
hw_device->get_obj_name(accel_dev, service_type); | |||||
cfg_ae_mask = | |||||
hw_device->get_obj_cfg_ae_mask(accel_dev, | |||||
service_type); | |||||
if (!obj_name) { | if (!obj_name) { | ||||
device_printf( | device_printf( | ||||
GET_DEV(accel_dev), | GET_DEV(accel_dev), | ||||
"Invalid object (service = %lx)\n", | "Invalid object (service = %lx)\n", | ||||
BIT(i)); | BIT(i)); | ||||
goto out_err; | goto out_err; | ||||
} | } | ||||
if (!hw_device->get_obj_cfg_ae_mask(accel_dev, BIT(i))) | if (!cfg_ae_mask) | ||||
continue; | continue; | ||||
cfg_ae_mask = | |||||
hw_device->get_obj_cfg_ae_mask(accel_dev, BIT(i)); | |||||
if (qat_uclo_set_cfg_ae_mask(loader_data->fw_loader, | if (qat_uclo_set_cfg_ae_mask(loader_data->fw_loader, | ||||
cfg_ae_mask)) { | cfg_ae_mask)) { | ||||
device_printf(GET_DEV(accel_dev), | device_printf(GET_DEV(accel_dev), | ||||
"Invalid config AE mask\n"); | "Invalid config AE mask\n"); | ||||
goto out_err; | goto out_err; | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | adf_ae_fw_release(struct adf_accel_dev *accel_dev) | ||||
loader_data->fw_loader = NULL; | loader_data->fw_loader = NULL; | ||||
} | } | ||||
int | int | ||||
adf_ae_start(struct adf_accel_dev *accel_dev) | adf_ae_start(struct adf_accel_dev *accel_dev) | ||||
{ | { | ||||
struct adf_fw_loader_data *loader_data = accel_dev->fw_loader; | struct adf_fw_loader_data *loader_data = accel_dev->fw_loader; | ||||
struct adf_hw_device_data *hw_data = accel_dev->hw_device; | struct adf_hw_device_data *hw_data = accel_dev->hw_device; | ||||
uint32_t ae_ctr, ae, max_aes = GET_MAX_ACCELENGINES(accel_dev); | uint32_t ae_ctr; | ||||
if (!hw_data->fw_name) | if (!hw_data->fw_name) | ||||
return 0; | return 0; | ||||
for (ae = 0, ae_ctr = 0; ae < max_aes; ae++) { | ae_ctr = qat_hal_start(loader_data->fw_loader); | ||||
if (hw_data->ae_mask & (1 << ae)) { | |||||
qat_hal_start(loader_data->fw_loader, ae, 0xFF); | |||||
ae_ctr++; | |||||
} | |||||
} | |||||
device_printf(GET_DEV(accel_dev), | device_printf(GET_DEV(accel_dev), | ||||
"qat_dev%d started %d acceleration engines\n", | "qat_dev%d started %d acceleration engines\n", | ||||
accel_dev->accel_id, | accel_dev->accel_id, | ||||
ae_ctr); | ae_ctr); | ||||
return 0; | return 0; | ||||
} | } | ||||
int | int | ||||
▲ Show 20 Lines • Show All 74 Lines • Show Last 20 Lines |