1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef __MSM_HDMI_MODES_H__ 20 #define __MSM_HDMI_MODES_H__ 21 #include <linux/types.h> 22 struct msm_hdmi_mode_timing_info { 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 uint32_t video_format; 25 uint32_t active_h; 26 uint32_t front_porch_h; 27 uint32_t pulse_width_h; 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 uint32_t back_porch_h; 30 uint32_t active_low_h; 31 uint32_t active_v; 32 uint32_t front_porch_v; 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 uint32_t pulse_width_v; 35 uint32_t back_porch_v; 36 uint32_t active_low_v; 37 uint32_t pixel_freq; 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 uint32_t refresh_rate; 40 uint32_t interlaced; 41 uint32_t supported; 42 }; 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 #define MSM_HDMI_MODES_CEA (1 << 0) 45 #define MSM_HDMI_MODES_XTND (1 << 1) 46 #define MSM_HDMI_MODES_DVI (1 << 2) 47 #define MSM_HDMI_MODES_ALL (MSM_HDMI_MODES_CEA | MSM_HDMI_MODES_XTND | MSM_HDMI_MODES_DVI) 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 #define HDMI_VFRMT_UNKNOWN 0 50 #define HDMI_VFRMT_640x480p60_4_3 1 51 #define HDMI_VFRMT_720x480p60_4_3 2 52 #define HDMI_VFRMT_720x480p60_16_9 3 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 #define HDMI_VFRMT_1280x720p60_16_9 4 55 #define HDMI_VFRMT_1920x1080i60_16_9 5 56 #define HDMI_VFRMT_720x480i60_4_3 6 57 #define HDMI_VFRMT_1440x480i60_4_3 HDMI_VFRMT_720x480i60_4_3 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 #define HDMI_VFRMT_720x480i60_16_9 7 60 #define HDMI_VFRMT_1440x480i60_16_9 HDMI_VFRMT_720x480i60_16_9 61 #define HDMI_VFRMT_720x240p60_4_3 8 62 #define HDMI_VFRMT_1440x240p60_4_3 HDMI_VFRMT_720x240p60_4_3 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 #define HDMI_VFRMT_720x240p60_16_9 9 65 #define HDMI_VFRMT_1440x240p60_16_9 HDMI_VFRMT_720x240p60_16_9 66 #define HDMI_VFRMT_2880x480i60_4_3 10 67 #define HDMI_VFRMT_2880x480i60_16_9 11 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 #define HDMI_VFRMT_2880x240p60_4_3 12 70 #define HDMI_VFRMT_2880x240p60_16_9 13 71 #define HDMI_VFRMT_1440x480p60_4_3 14 72 #define HDMI_VFRMT_1440x480p60_16_9 15 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 #define HDMI_VFRMT_1920x1080p60_16_9 16 75 #define HDMI_VFRMT_720x576p50_4_3 17 76 #define HDMI_VFRMT_720x576p50_16_9 18 77 #define HDMI_VFRMT_1280x720p50_16_9 19 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 #define HDMI_VFRMT_1920x1080i50_16_9 20 80 #define HDMI_VFRMT_720x576i50_4_3 21 81 #define HDMI_VFRMT_1440x576i50_4_3 HDMI_VFRMT_720x576i50_4_3 82 #define HDMI_VFRMT_720x576i50_16_9 22 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 #define HDMI_VFRMT_1440x576i50_16_9 HDMI_VFRMT_720x576i50_16_9 85 #define HDMI_VFRMT_720x288p50_4_3 23 86 #define HDMI_VFRMT_1440x288p50_4_3 HDMI_VFRMT_720x288p50_4_3 87 #define HDMI_VFRMT_720x288p50_16_9 24 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 #define HDMI_VFRMT_1440x288p50_16_9 HDMI_VFRMT_720x288p50_16_9 90 #define HDMI_VFRMT_2880x576i50_4_3 25 91 #define HDMI_VFRMT_2880x576i50_16_9 26 92 #define HDMI_VFRMT_2880x288p50_4_3 27 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 #define HDMI_VFRMT_2880x288p50_16_9 28 95 #define HDMI_VFRMT_1440x576p50_4_3 29 96 #define HDMI_VFRMT_1440x576p50_16_9 30 97 #define HDMI_VFRMT_1920x1080p50_16_9 31 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 #define HDMI_VFRMT_1920x1080p24_16_9 32 100 #define HDMI_VFRMT_1920x1080p25_16_9 33 101 #define HDMI_VFRMT_1920x1080p30_16_9 34 102 #define HDMI_VFRMT_2880x480p60_4_3 35 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 #define HDMI_VFRMT_2880x480p60_16_9 36 105 #define HDMI_VFRMT_2880x576p50_4_3 37 106 #define HDMI_VFRMT_2880x576p50_16_9 38 107 #define HDMI_VFRMT_1920x1250i50_16_9 39 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 #define HDMI_VFRMT_1920x1080i100_16_9 40 110 #define HDMI_VFRMT_1280x720p100_16_9 41 111 #define HDMI_VFRMT_720x576p100_4_3 42 112 #define HDMI_VFRMT_720x576p100_16_9 43 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 #define HDMI_VFRMT_720x576i100_4_3 44 115 #define HDMI_VFRMT_1440x576i100_4_3 HDMI_VFRMT_720x576i100_4_3 116 #define HDMI_VFRMT_720x576i100_16_9 45 117 #define HDMI_VFRMT_1440x576i100_16_9 HDMI_VFRMT_720x576i100_16_9 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 #define HDMI_VFRMT_1920x1080i120_16_9 46 120 #define HDMI_VFRMT_1280x720p120_16_9 47 121 #define HDMI_VFRMT_720x480p120_4_3 48 122 #define HDMI_VFRMT_720x480p120_16_9 49 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 #define HDMI_VFRMT_720x480i120_4_3 50 125 #define HDMI_VFRMT_1440x480i120_4_3 HDMI_VFRMT_720x480i120_4_3 126 #define HDMI_VFRMT_720x480i120_16_9 51 127 #define HDMI_VFRMT_1440x480i120_16_9 HDMI_VFRMT_720x480i120_16_9 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 #define HDMI_VFRMT_720x576p200_4_3 52 130 #define HDMI_VFRMT_720x576p200_16_9 53 131 #define HDMI_VFRMT_720x576i200_4_3 54 132 #define HDMI_VFRMT_1440x576i200_4_3 HDMI_VFRMT_720x576i200_4_3 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 #define HDMI_VFRMT_720x576i200_16_9 55 135 #define HDMI_VFRMT_1440x576i200_16_9 HDMI_VFRMT_720x576i200_16_9 136 #define HDMI_VFRMT_720x480p240_4_3 56 137 #define HDMI_VFRMT_720x480p240_16_9 57 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 #define HDMI_VFRMT_720x480i240_4_3 58 140 #define HDMI_VFRMT_1440x480i240_4_3 HDMI_VFRMT_720x480i240_4_3 141 #define HDMI_VFRMT_720x480i240_16_9 59 142 #define HDMI_VFRMT_1440x480i240_16_9 HDMI_VFRMT_720x480i240_16_9 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 #define HDMI_VFRMT_1280x720p24_16_9 60 145 #define HDMI_VFRMT_1280x720p25_16_9 61 146 #define HDMI_VFRMT_1280x720p30_16_9 62 147 #define HDMI_VFRMT_1920x1080p120_16_9 63 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 #define HDMI_VFRMT_1920x1080p100_16_9 64 150 #define HDMI_VFRMT_END 127 151 #define HDMI_VFRMT_3840x2160p30_16_9 (HDMI_VFRMT_END + 1) 152 #define HDMI_VFRMT_3840x2160p25_16_9 (HDMI_VFRMT_END + 2) 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 #define HDMI_VFRMT_3840x2160p24_16_9 (HDMI_VFRMT_END + 3) 155 #define HDMI_VFRMT_4096x2160p24_16_9 (HDMI_VFRMT_END + 4) 156 #define HDMI_EVFRMT_END HDMI_VFRMT_4096x2160p24_16_9 157 #define HDMI_VFRMT_1024x768p60_4_3 (HDMI_EVFRMT_END + 1) 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 #define HDMI_VFRMT_1280x1024p60_5_4 (HDMI_EVFRMT_END + 2) 160 #define HDMI_VFRMT_2560x1600p60_16_9 (HDMI_EVFRMT_END + 3) 161 #define VESA_DMT_VFRMT_END HDMI_VFRMT_2560x1600p60_16_9 162 #define HDMI_VFRMT_MAX (VESA_DMT_VFRMT_END + 1) 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 #define HDMI_VFRMT_FORCE_32BIT 0x7FFFFFFF 165 #define VFRMT_NOT_SUPPORTED(VFRMT) {VFRMT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false} 166 #define HDMI_VFRMT_640x480p60_4_3_TIMING {HDMI_VFRMT_640x480p60_4_3, 640, 16, 96, 48, true, 480, 10, 2, 33, true, 25200, 60000, false, true} 167 #define HDMI_VFRMT_720x480p60_4_3_TIMING {HDMI_VFRMT_720x480p60_4_3, 720, 16, 62, 60, true, 480, 9, 6, 30, true, 27030, 60000, false, true} 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 #define HDMI_VFRMT_720x480p60_16_9_TIMING {HDMI_VFRMT_720x480p60_16_9, 720, 16, 62, 60, true, 480, 9, 6, 30, true, 27030, 60000, false, true} 170 #define HDMI_VFRMT_1280x720p60_16_9_TIMING {HDMI_VFRMT_1280x720p60_16_9, 1280, 110, 40, 220, false, 720, 5, 5, 20, false, 74250, 60000, false, true} 171 #define HDMI_VFRMT_1920x1080i60_16_9_TIMING {HDMI_VFRMT_1920x1080i60_16_9, 1920, 88, 44, 148, false, 540, 2, 5, 5, false, 74250, 60000, false, true} 172 #define HDMI_VFRMT_1440x480i60_4_3_TIMING {HDMI_VFRMT_1440x480i60_4_3, 1440, 38, 124, 114, true, 240, 4, 3, 15, true, 27000, 60000, true, true} 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 #define HDMI_VFRMT_1440x480i60_16_9_TIMING {HDMI_VFRMT_1440x480i60_16_9, 1440, 38, 124, 114, true, 240, 4, 3, 15, true, 27000, 60000, true, true} 175 #define HDMI_VFRMT_1920x1080p60_16_9_TIMING {HDMI_VFRMT_1920x1080p60_16_9, 1920, 88, 44, 148, false, 1080, 4, 5, 36, false, 148500, 60000, false, true} 176 #define HDMI_VFRMT_720x576p50_4_3_TIMING {HDMI_VFRMT_720x576p50_4_3, 720, 12, 64, 68, true, 576, 5, 5, 39, true, 27000, 50000, false, true} 177 #define HDMI_VFRMT_720x576p50_16_9_TIMING {HDMI_VFRMT_720x576p50_16_9, 720, 12, 64, 68, true, 576, 5, 5, 39, true, 27000, 50000, false, true} 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 #define HDMI_VFRMT_1280x720p50_16_9_TIMING {HDMI_VFRMT_1280x720p50_16_9, 1280, 440, 40, 220, false, 720, 5, 5, 20, false, 74250, 50000, false, true} 180 #define HDMI_VFRMT_1440x576i50_4_3_TIMING {HDMI_VFRMT_1440x576i50_4_3, 1440, 24, 126, 138, true, 288, 2, 3, 19, true, 27000, 50000, true, true} 181 #define HDMI_VFRMT_1440x576i50_16_9_TIMING {HDMI_VFRMT_1440x576i50_16_9, 1440, 24, 126, 138, true, 288, 2, 3, 19, true, 27000, 50000, true, true} 182 #define HDMI_VFRMT_1920x1080p50_16_9_TIMING {HDMI_VFRMT_1920x1080p50_16_9, 1920, 528, 44, 148, false, 1080, 4, 5, 36, false, 148500, 50000, false, true} 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 #define HDMI_VFRMT_1920x1080p24_16_9_TIMING {HDMI_VFRMT_1920x1080p24_16_9, 1920, 638, 44, 148, false, 1080, 4, 5, 36, false, 74250, 24000, false, true} 185 #define HDMI_VFRMT_1920x1080p25_16_9_TIMING {HDMI_VFRMT_1920x1080p25_16_9, 1920, 528, 44, 148, false, 1080, 4, 5, 36, false, 74250, 25000, false, true} 186 #define HDMI_VFRMT_1920x1080p30_16_9_TIMING {HDMI_VFRMT_1920x1080p30_16_9, 1920, 88, 44, 148, false, 1080, 4, 5, 36, false, 74250, 30000, false, true} 187 #define HDMI_VFRMT_1024x768p60_4_3_TIMING {HDMI_VFRMT_1024x768p60_4_3, 1024, 24, 136, 160, false, 768, 2, 6, 29, false, 65000, 60000, false, true} 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 #define HDMI_VFRMT_1280x1024p60_5_4_TIMING {HDMI_VFRMT_1280x1024p60_5_4, 1280, 48, 112, 248, false, 1024, 1, 3, 38, false, 108000, 60000, false, true} 190 #define HDMI_VFRMT_2560x1600p60_16_9_TIMING {HDMI_VFRMT_2560x1600p60_16_9, 2560, 48, 32, 80, false, 1600, 3, 6, 37, false, 268500, 60000, false, true} 191 #define HDMI_VFRMT_3840x2160p30_16_9_TIMING {HDMI_VFRMT_3840x2160p30_16_9, 3840, 176, 88, 296, false, 2160, 8, 10, 72, false, 297000, 30000, false, true} 192 #define HDMI_VFRMT_3840x2160p25_16_9_TIMING {HDMI_VFRMT_3840x2160p25_16_9, 3840, 1056, 88, 296, false, 2160, 8, 10, 72, false, 297000, 25000, false, true} 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 #define HDMI_VFRMT_3840x2160p24_16_9_TIMING {HDMI_VFRMT_3840x2160p24_16_9, 3840, 1276, 88, 296, false, 2160, 8, 10, 72, false, 297000, 24000, false, true} 195 #define HDMI_VFRMT_4096x2160p24_16_9_TIMING {HDMI_VFRMT_4096x2160p24_16_9, 4096, 1020, 88, 296, false, 2160, 8, 10, 72, false, 297000, 24000, false, true} 196 #define MSM_HDMI_MODES_SET_TIMING(LUT, MODE) do { struct msm_hdmi_mode_timing_info mode = MODE##_TIMING; LUT[MODE] = mode; } while (0) 197 #define MSM_HDMI_MODES_INIT_TIMINGS(__lut) do { unsigned int i; for (i = 0; i < HDMI_VFRMT_MAX; i++) { struct msm_hdmi_mode_timing_info mode = VFRMT_NOT_SUPPORTED(i); (__lut)[i] = mode; } } while (0) 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 #define MSM_HDMI_MODES_SET_SUPP_TIMINGS(__lut, __type) do { if (__type & MSM_HDMI_MODES_CEA) { MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_640x480p60_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_720x480p60_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_720x480p60_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1280x720p60_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080i60_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1440x480i60_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1440x480i60_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080p60_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_720x576p50_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_720x576p50_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1280x720p50_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1440x576i50_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1440x576i50_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080p50_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080p24_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080p25_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1920x1080p30_16_9); } if (__type & MSM_HDMI_MODES_XTND) { MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_3840x2160p30_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_3840x2160p25_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_3840x2160p24_16_9); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_4096x2160p24_16_9); } if (__type & MSM_HDMI_MODES_DVI) { MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1024x768p60_4_3); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_1280x1024p60_5_4); MSM_HDMI_MODES_SET_TIMING(__lut, HDMI_VFRMT_2560x1600p60_16_9); } } while (0) 200 #endif 201