diff --git a/drivers/amlogic/media/vin/tvin/tvafe/tvafe.c b/drivers/amlogic/media/vin/tvin/tvafe/tvafe.c index fb5d8f2931dd..6cd3ff361f8b 100644 --- a/drivers/amlogic/media/vin/tvin/tvafe/tvafe.c +++ b/drivers/amlogic/media/vin/tvin/tvafe/tvafe.c @@ -976,6 +976,19 @@ static long tvafe_ioctl(struct file *file, __func__, tvin_sig_fmt_str(fmt)); break; } + case TVIN_IOC_G_AFE_CVBS_STD: + { + enum tvin_sig_fmt_e fmt = TVIN_SIG_FMT_NULL; + + if (tvafe->cvd2.info.state == TVAFE_CVD2_STATE_FIND) + fmt = tvafe->cvd2.config_fmt; + if (copy_to_user(argp, &fmt, + sizeof(enum tvin_sig_fmt_e))) + ret = -EFAULT; + tvafe_pr_info("%s: ioctl get fmt:%s.\n", + __func__, tvin_sig_fmt_str(fmt)); + break; + } default: ret = -ENOIOCTLCMD; break; diff --git a/include/linux/amlogic/media/frame_provider/tvin/tvin.h b/include/linux/amlogic/media/frame_provider/tvin/tvin.h index f933f11f076d..00a03de12eb9 100644 --- a/include/linux/amlogic/media/frame_provider/tvin/tvin.h +++ b/include/linux/amlogic/media/frame_provider/tvin/tvin.h @@ -447,6 +447,7 @@ struct tvafe_pin_mux_s { #define TVIN_IOC_S_AFE_CVBS_STD _IOW(_TM_T, 0x1b, enum tvin_sig_fmt_e) #define TVIN_IOC_CALLMASTER_SET _IOW(_TM_T, 0x1c, enum tvin_port_e) #define TVIN_IOC_CALLMASTER_GET _IO(_TM_T, 0x1d) +#define TVIN_IOC_G_AFE_CVBS_STD _IOW(_TM_T, 0x1e, enum tvin_sig_fmt_e) #define TVIN_IOC_LOAD_REG _IOW(_TM_T, 0x20, struct am_regs_s) #define TVIN_IOC_S_AFE_SONWON _IO(_TM_T, 0x22) #define TVIN_IOC_S_AFE_SONWOFF _IO(_TM_T, 0x23)