summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
diff options
context:
space:
mode:
authorHarry Wentland <harry.wentland@amd.com>2019-05-07 14:50:05 -0500
committerAlex Deucher <alexander.deucher@amd.com>2019-06-21 18:59:34 -0500
commitca4d9b3a5a3b70da5af1f48d36e181cdebe77e2c (patch)
treecd2953fc4e52b569556e5e6cbccbc4cf6f42a23c /drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
parent728c06986a4f386c7ec5e5170716e30b610c6d32 (diff)
downloadlinux-ca4d9b3a5a3b70da5af1f48d36e181cdebe77e2c.tar.gz
linux-ca4d9b3a5a3b70da5af1f48d36e181cdebe77e2c.tar.bz2
linux-ca4d9b3a5a3b70da5af1f48d36e181cdebe77e2c.zip
drm/amd/display: Add DCN2 DIO
Add support for the DIO (Display IO) block of DCN2, which entails our stream and link encoders. HW Blocks: +--------+ | DIO | +--------+ 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/inc/hw/stream_encoder.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
index 74db1d82fa35..f84ce4de53ca 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/stream_encoder.h
@@ -65,11 +65,20 @@ struct audio_clock_info {
uint32_t cts_48khz;
};
+#if defined(CONFIG_DRM_AMD_DC_DCN2_0)
+enum dynamic_metadata_mode {
+ dmdata_dp,
+ dmdata_hdmi,
+ dmdata_dolby_vision
+};
+#endif
+
struct encoder_info_frame {
/* auxiliary video information */
struct dc_info_packet avi;
struct dc_info_packet gamut;
struct dc_info_packet vendor;
+ struct dc_info_packet hfvsif;
/* source product description */
struct dc_info_packet spd;
/* video stream configuration */
@@ -81,6 +90,9 @@ struct encoder_info_frame {
struct encoder_unblank_param {
struct dc_link_settings link_settings;
struct dc_crtc_timing timing;
+#ifdef CONFIG_DRM_AMD_DC_DCN2_0
+ bool odm;
+#endif
};
struct encoder_set_dp_phy_pattern_param {
@@ -97,6 +109,7 @@ struct stream_encoder {
enum engine_id id;
};
+
struct stream_encoder_funcs {
void (*dp_set_stream_attribute)(
struct stream_encoder *enc,
@@ -184,6 +197,17 @@ struct stream_encoder_funcs {
struct stream_encoder *enc,
int tg_inst);
+#if defined(CONFIG_DRM_AMD_DC_DCN2_0)
+
+ void (*set_dynamic_metadata)(struct stream_encoder *enc,
+ bool enable,
+ uint32_t hubp_requestor_id,
+ enum dynamic_metadata_mode dmdata_mode);
+
+ void (*dp_set_odm_combine)(
+ struct stream_encoder *enc,
+ bool odm_combine);
+#endif
};
#endif /* STREAM_ENCODER_H_ */