1 /* 2 * Copyright 2018 Advanced Micro Devices, Inc. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20 * OTHER DEALINGS IN THE SOFTWARE. 21 * 22 * Authors: AMD 23 * 24 */ 25 26 #ifndef MOD_INFO_PACKET_H_ 27 #define MOD_INFO_PACKET_H_ 28 29 #include "dm_services.h" 30 #include "mod_shared.h" 31 //Forward Declarations 32 struct dc_stream_state; 33 struct dc_info_packet; 34 struct mod_vrr_params; 35 36 void mod_build_vsc_infopacket(const struct dc_stream_state *stream, 37 struct dc_info_packet *info_packet, 38 enum dc_color_space cs, 39 enum color_transfer_func tf); 40 41 void mod_build_hf_vsif_infopacket(const struct dc_stream_state *stream, 42 struct dc_info_packet *info_packet); 43 44 enum adaptive_sync_type { 45 ADAPTIVE_SYNC_TYPE_NONE = 0, 46 ADAPTIVE_SYNC_TYPE_DP = 1, 47 FREESYNC_TYPE_PCON_IN_WHITELIST = 2, 48 FREESYNC_TYPE_PCON_NOT_IN_WHITELIST = 3, 49 ADAPTIVE_SYNC_TYPE_EDP = 4, 50 }; 51 52 enum adaptive_sync_sdp_version { 53 AS_SDP_VER_0 = 0x0, 54 AS_SDP_VER_1 = 0x1, 55 AS_SDP_VER_2 = 0x2, 56 }; 57 58 #define AS_DP_SDP_LENGTH (9) 59 60 struct frame_duration_op { 61 bool support; 62 unsigned char frame_duration_hex; 63 }; 64 65 struct AS_Df_params { 66 bool supportMode; 67 struct frame_duration_op increase; 68 struct frame_duration_op decrease; 69 }; 70 71 void mod_build_adaptive_sync_infopacket(const struct dc_stream_state *stream, 72 enum adaptive_sync_type asType, const struct AS_Df_params *param, 73 struct dc_info_packet *info_packet); 74 75 void mod_build_adaptive_sync_infopacket_v2(const struct dc_stream_state *stream, 76 const struct AS_Df_params *param, struct dc_info_packet *info_packet); 77 78 void mod_build_adaptive_sync_infopacket_v1(struct dc_info_packet *info_packet); 79 80 #endif 81