hdr_source_type = SDR_SOURCE;
}
+enum color_primary_e get_color_primary(void)
+{
+ enum color_primary_e color_pri;
+
+ if (signal_color_primaries == 1)
+ color_pri = VPP_COLOR_PRI_BT709;
+ else if (signal_color_primaries == 3)
+ color_pri = VPP_COLOR_PRI_BT601;
+ else if (signal_color_primaries == 9)
+ color_pri = VPP_COLOR_PRI_BT2020;
+ else
+ color_pri = VPP_COLOR_PRI_NULL;
+ return color_pri;
+}
+
static void cal_out_curve(uint panel_luma)
{
int index;
extern u32 get_video_enabled(void);
extern void get_hdr_source_type(void);
-
+extern enum color_primary_e get_color_primary(void);
/*hdr*/
/*#define DBG_BUF_SIZE (1024)*/
struct ve_pq_load_s vpp_pq_load;
struct ve_pq_table_s *vpp_pq_load_table = NULL;
int i = 0;
+ enum color_primary_e color_pri;
if (debug_amvecm & 2)
pr_info("[amvecm..] %s: cmd_nr = 0x%x\n",
&cur_csc_type, sizeof(enum vpp_matrix_csc_e)))
ret = -EFAULT;
break;
+ case AMVECM_IOC_G_COLOR_PRI:
+ argp = (void __user *)arg;
+ color_pri = get_color_primary();
+ if (copy_to_user(argp,
+ &color_pri, sizeof(enum color_primary_e)))
+ ret = -EFAULT;
+ break;
case AMVECM_IOC_S_CSCTYPE:
if (copy_from_user(&cur_csc_type,
(void __user *)arg,
#define AMVECM_IOC_VE_NEW_DNLP _IOW(_VE_CM, 0x25, struct ve_dnlp_curve_param_s)
#define AMVECM_IOC_G_HIST_BIN _IOW(_VE_CM, 0x26, struct vpp_hist_param_s)
#define AMVECM_IOC_G_HDR_METADATA _IOW(_VE_CM, 0x27, struct hdr_metadata_info_s)
-
+/*vpp get color primary*/
+#define AMVECM_IOC_G_COLOR_PRI _IOR(_VE_CM, 0x28, enum color_primary_e)
/* VPP.CM IOCTL command list */
#define AMVECM_IOC_LOAD_REG _IOW(_VE_CM, 0x30, struct am_regs_s)
-
/* VPP.GAMMA IOCTL command list */
#define AMVECM_IOC_GAMMA_TABLE_EN _IO(_VE_CM, 0x40)
#define AMVECM_IOC_GAMMA_TABLE_DIS _IO(_VE_CM, 0x41)
int contrast2;
};
+enum color_primary_e {
+ VPP_COLOR_PRI_NULL = 0,
+ VPP_COLOR_PRI_BT601,
+ VPP_COLOR_PRI_BT709,
+ VPP_COLOR_PRI_BT2020,
+ VPP_COLOR_PRI_MAX,
+};
+
enum vpp_matrix_csc_e {
VPP_MATRIX_NULL = 0,
VPP_MATRIX_RGB_YUV601 = 0x1,
/* READ_CBUS_REG_BITS(x,start,length) */
/* #endif */
-
static inline void WRITE_VPP_REG(uint32_t reg,
const uint32_t value)
{