/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2021. All rights reserved. * Description: ATV IAPI interface * Author: Hisilicon * Created: 2019-12-07 */ #include "mpi_frontend_ext.h" #include #include #include #include #include "soc_log.h" #include "soc_errno.h" #include "mpi_frontend.h" #include "mpi_atv.h" td_s32 ext_mpi_frontend_set_step(fe_ioctrl_frontend_step fe_step) { td_s32 ret; if (fe_step.port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_step.port) invalid.\n"); soc_err_print_u32(fe_step.port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_SET_STEP_CMD, &fe_step); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_SET_STEP_CMD error.\n"); return SOC_ERR_FRONTEND_FAILED_SETSTEP; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_get_step(fe_ioctrl_frontend_step *fe_step) { td_s32 ret; if (fe_step == TD_NULL) { soc_log_err("Input parameter(fe_step) invalid.\n"); return SOC_ERR_FRONTEND_INVALID_POINT; } if (fe_step->port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_step->port) invalid.\n"); soc_err_print_u32(fe_step->port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_STEP_CMD, fe_step); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_STEP_CMD error.\n"); return TD_FAILURE; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_get_band(fe_ioctrl_band *fe_band) { td_s32 ret; if (fe_band == NULL) { soc_log_err("Input parameter(fe_band) invalid.\n"); return SOC_ERR_FRONTEND_INVALID_POINT; } if (fe_band->port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_band->port) invalid.\n"); soc_err_print_u32(fe_band->port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_BAND_CMD, fe_band); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_BAND_CMD error.\n"); return SOC_ERR_FRONTEND_FAILED_GETBAND; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_get_band_range(fe_ioctrl_band_range *fe_band_range) { td_s32 ret; if (fe_band_range == NULL) { soc_log_err("Input parameter(fe_band_range) invalid\n"); return SOC_ERR_FRONTEND_INVALID_POINT; } if (fe_band_range->port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_band_range->port) invalid.\n"); soc_err_print_u32(fe_band_range->port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_BAND_RANGE_CMD, fe_band_range); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_BAND_RANGE_CMD error.\n"); return SOC_ERR_FRONTEND_FAILED_GETBANDRANGE; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_set_top_adjustment(fe_ioctrl_top_adjust fe_top_adjust) { td_s32 ret; if (fe_top_adjust.port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_top_adjust.port) invalid.\n"); soc_err_print_u32(fe_top_adjust.port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_SET_TOP_ADJUST_CMD, &fe_top_adjust); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_SET_TOP_ADJUST_CMD error.\n"); soc_err_print_u32(fe_top_adjust.top); return SOC_ERR_FRONTEND_FAILED_SETTOPADJUST; } return TD_SUCCESS; } td_s32 ext_mpi_frontend_get_bit_rate(fe_ioctrl_bit_rate *fe_bit_rate) { td_s32 ret; if (fe_bit_rate == NULL) { soc_log_err("Input parameter(fe_bit_rate) invalid.\n"); return SOC_ERR_FRONTEND_INVALID_PARA; } if (fe_bit_rate->port >= MPI_ATV_NUM) { soc_log_err("Input parameter(fe_bit_rate->port) invalid.\n"); soc_err_print_u32(fe_bit_rate->port); return SOC_ERR_FRONTEND_INVALID_PORT; } ret = ioctl(frontend_get_fd(), FRONTEND_GET_BITRATE_CMD, fe_bit_rate); if (ret != TD_SUCCESS) { soc_log_err("FRONTEND_GET_BITRATE_CMD error.\n"); return SOC_ERR_FRONTEND_FAILED_GETBAND; } return TD_SUCCESS; }