summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/dc_types.h
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2019-02-22 23:54:43 +0300
committerAlex Deucher <alexander.deucher@amd.com>2019-06-22 02:59:35 +0300
commit345429a67c48e1e9f7f95a406285be2b1bd09886 (patch)
tree2cdc7a60ead21210aa32ea7acacc8f3f3a891ae8 /drivers/gpu/drm/amd/display/dc/dc_types.h
parentfa0d2c989c94579ab143199a07849697afb1b4a8 (diff)
downloadlinux-345429a67c48e1e9f7f95a406285be2b1bd09886.tar.xz
drm/amd/display: Add DCN2 DWB
Add support to program the DCN2 DWB (Display Writeback) HW Blocks: +--------++------+ +----------+ | HUBBUB || HUBP | <-- | MMHUBBUB | +--------++------+ +----------+ | ^ v | +--------+ +--------+ | DPP | | DWB | +--------+ +--------+ | v ^ +--------+ | | MPC | | +--------+ | | | v | +-------+ | | OPP | | +-------+ | | | v | +--------+ / | OPTC | -------------- +--------+ | v +--------+ +--------+ | DIO | | DCCG | +--------+ +--------+ Signed-off-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/dc_types.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/dc_types.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h
index 92a670894c05..01793aa3e093 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h
@@ -421,6 +421,32 @@ enum display_content_type {
DISPLAY_CONTENT_TYPE_GAME = 8
};
+#if defined(CONFIG_DRM_AMD_DC_DCN2_0)
+/* writeback */
+struct dc_dwb_cnv_params {
+ unsigned int src_width; /* input active width */
+ unsigned int src_height; /* input active height (half-active height in interlaced mode) */
+ unsigned int crop_width; /* cropped window width at cnv output */
+ bool crop_en; /* window cropping enable in cnv */
+ unsigned int crop_height; /* cropped window height at cnv output */
+ unsigned int crop_x; /* cropped window start x value at cnv output */
+ unsigned int crop_y; /* cropped window start y value at cnv output */
+ enum dwb_cnv_out_bpc cnv_out_bpc; /* cnv output pixel depth - 8bpc or 10bpc */
+};
+
+struct dc_dwb_params {
+ struct dc_dwb_cnv_params cnv_params; /* CNV source size and cropping window parameters */
+ unsigned int dest_width; /* Destination width */
+ unsigned int dest_height; /* Destination height */
+ enum dwb_scaler_mode out_format; /* default = YUV420 - TODO: limit this to 0 and 1 on dcn3 */
+ enum dwb_output_depth output_depth; /* output pixel depth - 8bpc or 10bpc */
+ enum dwb_capture_rate capture_rate; /* controls the frame capture rate */
+ struct scaling_taps scaler_taps; /* Scaling taps */
+ enum dwb_subsample_position subsample_position;
+ struct dc_transfer_func *out_transfer_func;
+};
+#endif
+
/* audio*/
union audio_sample_rates {