171713766SGiovanni Cabiddu /* SPDX-License-Identifier: GPL-2.0-only */ 271713766SGiovanni Cabiddu /* Copyright(c) 2023 Intel Corporation */ 371713766SGiovanni Cabiddu #ifndef _ADF_CFG_SERVICES_H_ 471713766SGiovanni Cabiddu #define _ADF_CFG_SERVICES_H_ 571713766SGiovanni Cabiddu 671713766SGiovanni Cabiddu #include "adf_cfg_strings.h" 771713766SGiovanni Cabiddu 84db87a5fSJie Wang struct adf_accel_dev; 94db87a5fSJie Wang 1071713766SGiovanni Cabiddu enum adf_base_services { 115ab6c06dSMałgorzata Mielnik SVC_ASYM = 0, 125ab6c06dSMałgorzata Mielnik SVC_SYM, 1371713766SGiovanni Cabiddu SVC_DC, 1437b14f2dSAdam Guerin SVC_DECOMP, 155ab6c06dSMałgorzata Mielnik SVC_BASE_COUNT 1671713766SGiovanni Cabiddu }; 1771713766SGiovanni Cabiddu 185ab6c06dSMałgorzata Mielnik enum adf_extended_services { 195ab6c06dSMałgorzata Mielnik SVC_DCC = SVC_BASE_COUNT, 205ab6c06dSMałgorzata Mielnik SVC_COUNT 215ab6c06dSMałgorzata Mielnik }; 225ab6c06dSMałgorzata Mielnik 2371713766SGiovanni Cabiddu enum adf_composed_services { 245ab6c06dSMałgorzata Mielnik SVC_SYM_ASYM = SVC_COUNT, 255ab6c06dSMałgorzata Mielnik SVC_SYM_DC, 265ab6c06dSMałgorzata Mielnik SVC_ASYM_DC, 275ab6c06dSMałgorzata Mielnik }; 285ab6c06dSMałgorzata Mielnik 295ab6c06dSMałgorzata Mielnik enum { 305ab6c06dSMałgorzata Mielnik ADF_ONE_SERVICE = 1, 315ab6c06dSMałgorzata Mielnik ADF_TWO_SERVICES, 325ab6c06dSMałgorzata Mielnik ADF_THREE_SERVICES, 335ab6c06dSMałgorzata Mielnik }; 344db87a5fSJie Wang 35*61e15287SGiovanni Cabiddu #define MAX_NUM_CONCURR_SVC ADF_THREE_SERVICES 364db87a5fSJie Wang 3771713766SGiovanni Cabiddu int adf_parse_service_string(struct adf_accel_dev *accel_dev, const char *in, 38 size_t in_len, char *out, size_t out_len); 39 int adf_get_service_enabled(struct adf_accel_dev *accel_dev); 40 int adf_get_service_mask(struct adf_accel_dev *accel_dev, unsigned long *mask); 41 enum adf_cfg_service_type adf_srv_to_cfg_svc_type(enum adf_base_services svc); 42 bool adf_is_service_enabled(struct adf_accel_dev *accel_dev, enum adf_base_services svc); 43 44 #endif 45