blob: bf959658fdf33bfb88a303a44c27ce9b0eb07b03 [file] [log] [blame]
/*
* include/linux/amlogic/media/video_sink/video_prot.h
*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef _VIDEO_PROT_H
#define _VIDEO_PROT_H
#include <linux/kernel.h>
/* #include <plat/regops.h> */
/* #include <mach/am_regs.h> */
#include <linux/amlogic/media/vfm/vframe.h>
#include <linux/amlogic/media/canvas/canvas.h>
#define CUGT 0
#define CID_VALUE 161
#define CID_MODE 6
#define REQ_ONOFF_EN 0
#define REQ_ON_MAX 0
#define REQ_OFF_MIN 0
#define PAT_VAL 0x00000000
#define PAT_START_PTR 1
#define PAT_END_PTR 1
#define HOLD_LINES 4
#define LITTLE_ENDIAN 0
struct video_prot_s {
u32 status;
u32 video_started;
u32 viu_type;
u32 power_down;
u32 power_on;
u32 use_prot;
u32 disable_prot;
u32 x_start;
u32 y_start;
u32 x_end;
u32 y_end;
u32 y_step;
u32 pat_val;
u32 prot2_canvas;
u32 prot3_canvas;
u32 is_4k2k;
u32 angle;
u32 angle_changed;
u32 size_changed;
u32 enable_layer;
u32 src_vframe_width;
u32 src_vframe_height;
u32 src_vframe_ratio;
u32 src_vframe_orientation;
} /*video_prot_t */;
/* extern void early_init_prot(); */
void video_prot_init(struct video_prot_s *video_prot, struct vframe_s *vf);
void video_prot_clear(struct video_prot_s *video_prot);
void video_prot_set_angle(struct video_prot_s *video_prot,
u32 angle_orientation);
void video_prot_revert_vframe(struct video_prot_s *video_prot,
struct vframe_s *vf);
void video_prot_set_canvas(struct vframe_s *vf);
void video_prot_gate_on(void);
void video_prot_gate_off(void);
u32 get_video_angle(void);
u32 get_prot_status(void);
void set_video_angle(u32 s_value);
void video_prot_axis(struct video_prot_s *video_prot, u32 hd_start, u32 hd_end,
u32 vd_start, u32 vd_end);
#endif