/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2020-2021. All rights reserved. * Description: TER mpi Interface * Author: Hisilicon * Created: 2020-09-13 */ #include #include "soc_log.h" #include "td_type.h" #include "soc_errno.h" #include "mpi_frontend_ext.h" #include "mpi_frontend.h" #include "mpi_ter.h" #ifdef __cplusplus #if __cplusplus extern "C" { #endif #endif /* __cplusplus */ td_s32 ext_mpi_frontend_get_plp_num(fe_ioctrl_plp_num *fe_plp_num) { td_s32 ret; if (fe_plp_num == TD_NULL) { soc_log_err("Input parameter(fe_plp_num) invalid.\n"); return SOC_ERR_FRONTEND_INVALID_POINT; } if (fe_plp_num->port >= MPI_TER_NUM) { soc_log_err("Input parameter(fe_plp_num->port) invalid.\n"); soc_err_print_u32(fe_plp_num->port); return SOC_ERR_FRONTEND_INVALID_PARA; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_PLPNUM_CMD, fe_plp_num); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_PLPNUM_CMD error.\n"); return ret; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_set_plp_para(fe_ioctrl_set_plp_para fe_plp_para) { td_s32 ret; if (fe_plp_para.port >= MPI_TER_NUM) { soc_log_err("Input parameter(fe_plp_para.port) invalid.\n"); soc_err_print_u32(fe_plp_para.port); return SOC_ERR_FRONTEND_INVALID_PARA; } ret = ioctl(frontend_get_fd(), FRONTEND_SET_PLP_PARA_CMD, &fe_plp_para); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_SET_PLP_PARA_CMD error.\n"); return ret; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_get_plp_info(fe_ioctrl_get_plp_info *fe_get_plp_info) { td_s32 ret; if (fe_get_plp_info == TD_NULL) { soc_log_err("Input parameter(fe_get_plp_info) invalid\n"); return SOC_ERR_FRONTEND_INVALID_POINT; } if (fe_get_plp_info->port >= MPI_TER_NUM) { soc_log_err("Input parameter(fe_get_plp_info->port) invalid.\n"); soc_err_print_u32(fe_get_plp_info->port); return SOC_ERR_FRONTEND_INVALID_PARA; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_PLP_INFO_CMD, fe_get_plp_info); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_PLP_INFO_CMD error.\n"); return ret; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_isdbt_config_layer_receive(fe_ioctrl_receive_config fe_layers_config) { td_s32 ret; if (fe_layers_config.port >= MPI_TER_NUM) { soc_log_err("Input parameter(fe_layers_config.port) invalid.\n"); soc_err_print_u32(fe_layers_config.port); return SOC_ERR_FRONTEND_INVALID_PARA; } ret = ioctl(frontend_get_fd(), FRONTEND_MONITOR_ISDBT_LAYER_CMD, &fe_layers_config); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_MONITOR_ISDBT_LAYER_CMD error.\n"); return ret; } return TD_SUCCESS; } #ifdef __cplusplus #if __cplusplus } #endif #endif /* __cplusplus */