[Why]
Adding support for chroma subsampling offset (cositing) in scaler
calculations to adjust reference point where we determine post-scaling
chroma value in YUV420 surfaces.
[How]
Add support for cositing options: NONE, LEFT and TOPLEFT Add debug
option force_cositing and set default to TOPLEFT to maintain same
behaviour as without offset support.
Reviewed-by: Jun Lei <jun.lei@amd.com>
Acked-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: Samson Tam <samson.tam@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
        unsigned int static_screen_wait_frames;
        bool force_chroma_subsampling_1tap;
        bool disable_422_left_edge_pixel;
+       unsigned int force_cositing;
 };
 
 struct gpu_info_soc_bounding_box_v1_0;
        struct tg_color visual_confirm_color;
 
        bool is_statically_allocated;
+       enum chroma_cositing cositing;
 };
 
 struct dc_plane_info {
        int  global_alpha_value;
        bool input_csc_enabled;
        int layer_index;
+       enum chroma_cositing cositing;
 };
 
 #include "dc_stream.h"
 
        SCANNING_TYPE_UNDEFINED
 };
 
+enum chroma_cositing {
+       CHROMA_COSITING_NONE,
+       CHROMA_COSITING_LEFT,
+       CHROMA_COSITING_TOPLEFT,
+       CHROMA_COSITING_COUNT
+};
+
 struct dc_crtc_timing_flags {
        uint32_t INTERLACE :1;
        uint32_t HSYNC_POSITIVE_POLARITY :1; /* when set to 1,