1 #ifndef _UAPI_MSM_HDMI_MODES_H__ 2 #define _UAPI_MSM_HDMI_MODES_H__ 3 #include <linux/types.h> 4 5 enum aspect_ratio { 6 HDMI_RES_AR_INVALID, 7 HDMI_RES_AR_4_3, 8 HDMI_RES_AR_5_4, 9 HDMI_RES_AR_16_9, 10 HDMI_RES_AR_16_10, 11 HDMI_RES_AR_MAX, 12 }; 13 14 enum msm_hdmi_s3d_mode { 15 HDMI_S3D_NONE, 16 HDMI_S3D_SIDE_BY_SIDE, 17 HDMI_S3D_TOP_AND_BOTTOM, 18 HDMI_S3D_FRAME_PACKING, 19 HDMI_S3D_MAX, 20 }; 21 22 struct msm_hdmi_mode_timing_info { 23 uint32_t video_format; 24 uint32_t active_h; 25 uint32_t front_porch_h; 26 uint32_t pulse_width_h; 27 uint32_t back_porch_h; 28 uint32_t active_low_h; 29 uint32_t active_v; 30 uint32_t front_porch_v; 31 uint32_t pulse_width_v; 32 uint32_t back_porch_v; 33 uint32_t active_low_v; 34 /* Must divide by 1000 to get the actual frequency in MHZ */ 35 uint32_t pixel_freq; 36 /* Must divide by 1000 to get the actual frequency in HZ */ 37 uint32_t refresh_rate; 38 uint32_t interlaced; 39 uint32_t supported; 40 enum aspect_ratio ar; 41 }; 42 43 #define MSM_HDMI_INIT_RES_PAGE 1 44 45 #define MSM_HDMI_MODES_CEA (1 << 0) 46 #define MSM_HDMI_MODES_XTND (1 << 1) 47 #define MSM_HDMI_MODES_DVI (1 << 2) 48 #define MSM_HDMI_MODES_ALL (MSM_HDMI_MODES_CEA |\ 49 MSM_HDMI_MODES_XTND |\ 50 MSM_HDMI_MODES_DVI) 51 52 /* all video formats defined by CEA 861D */ 53 #define HDMI_VFRMT_UNKNOWN 0 54 #define HDMI_VFRMT_640x480p60_4_3 1 55 #define HDMI_VFRMT_720x480p60_4_3 2 56 #define HDMI_VFRMT_720x480p60_16_9 3 57 #define HDMI_VFRMT_1280x720p60_16_9 4 58 #define HDMI_VFRMT_1920x1080i60_16_9 5 59 #define HDMI_VFRMT_720x480i60_4_3 6 60 #define HDMI_VFRMT_1440x480i60_4_3 HDMI_VFRMT_720x480i60_4_3 61 #define HDMI_VFRMT_720x480i60_16_9 7 62 #define HDMI_VFRMT_1440x480i60_16_9 HDMI_VFRMT_720x480i60_16_9 63 #define HDMI_VFRMT_720x240p60_4_3 8 64 #define HDMI_VFRMT_1440x240p60_4_3 HDMI_VFRMT_720x240p60_4_3 65 #define HDMI_VFRMT_720x240p60_16_9 9 66 #define HDMI_VFRMT_1440x240p60_16_9 HDMI_VFRMT_720x240p60_16_9 67 #define HDMI_VFRMT_2880x480i60_4_3 10 68 #define HDMI_VFRMT_2880x480i60_16_9 11 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 #define HDMI_VFRMT_1920x1080p60_16_9 16 74 #define HDMI_VFRMT_720x576p50_4_3 17 75 #define HDMI_VFRMT_720x576p50_16_9 18 76 #define HDMI_VFRMT_1280x720p50_16_9 19 77 #define HDMI_VFRMT_1920x1080i50_16_9 20 78 #define HDMI_VFRMT_720x576i50_4_3 21 79 #define HDMI_VFRMT_1440x576i50_4_3 HDMI_VFRMT_720x576i50_4_3 80 #define HDMI_VFRMT_720x576i50_16_9 22 81 #define HDMI_VFRMT_1440x576i50_16_9 HDMI_VFRMT_720x576i50_16_9 82 #define HDMI_VFRMT_720x288p50_4_3 23 83 #define HDMI_VFRMT_1440x288p50_4_3 HDMI_VFRMT_720x288p50_4_3 84 #define HDMI_VFRMT_720x288p50_16_9 24 85 #define HDMI_VFRMT_1440x288p50_16_9 HDMI_VFRMT_720x288p50_16_9 86 #define HDMI_VFRMT_2880x576i50_4_3 25 87 #define HDMI_VFRMT_2880x576i50_16_9 26 88 #define HDMI_VFRMT_2880x288p50_4_3 27 89 #define HDMI_VFRMT_2880x288p50_16_9 28 90 #define HDMI_VFRMT_1440x576p50_4_3 29 91 #define HDMI_VFRMT_1440x576p50_16_9 30 92 #define HDMI_VFRMT_1920x1080p50_16_9 31 93 #define HDMI_VFRMT_1920x1080p24_16_9 32 94 #define HDMI_VFRMT_1920x1080p25_16_9 33 95 #define HDMI_VFRMT_1920x1080p30_16_9 34 96 #define HDMI_VFRMT_2880x480p60_4_3 35 97 #define HDMI_VFRMT_2880x480p60_16_9 36 98 #define HDMI_VFRMT_2880x576p50_4_3 37 99 #define HDMI_VFRMT_2880x576p50_16_9 38 100 #define HDMI_VFRMT_1920x1250i50_16_9 39 101 #define HDMI_VFRMT_1920x1080i100_16_9 40 102 #define HDMI_VFRMT_1280x720p100_16_9 41 103 #define HDMI_VFRMT_720x576p100_4_3 42 104 #define HDMI_VFRMT_720x576p100_16_9 43 105 #define HDMI_VFRMT_720x576i100_4_3 44 106 #define HDMI_VFRMT_1440x576i100_4_3 HDMI_VFRMT_720x576i100_4_3 107 #define HDMI_VFRMT_720x576i100_16_9 45 108 #define HDMI_VFRMT_1440x576i100_16_9 HDMI_VFRMT_720x576i100_16_9 109 #define HDMI_VFRMT_1920x1080i120_16_9 46 110 #define HDMI_VFRMT_1280x720p120_16_9 47 111 #define HDMI_VFRMT_720x480p120_4_3 48 112 #define HDMI_VFRMT_720x480p120_16_9 49 113 #define HDMI_VFRMT_720x480i120_4_3 50 114 #define HDMI_VFRMT_1440x480i120_4_3 HDMI_VFRMT_720x480i120_4_3 115 #define HDMI_VFRMT_720x480i120_16_9 51 116 #define HDMI_VFRMT_1440x480i120_16_9 HDMI_VFRMT_720x480i120_16_9 117 #define HDMI_VFRMT_720x576p200_4_3 52 118 #define HDMI_VFRMT_720x576p200_16_9 53 119 #define HDMI_VFRMT_720x576i200_4_3 54 120 #define HDMI_VFRMT_1440x576i200_4_3 HDMI_VFRMT_720x576i200_4_3 121 #define HDMI_VFRMT_720x576i200_16_9 55 122 #define HDMI_VFRMT_1440x576i200_16_9 HDMI_VFRMT_720x576i200_16_9 123 #define HDMI_VFRMT_720x480p240_4_3 56 124 #define HDMI_VFRMT_720x480p240_16_9 57 125 #define HDMI_VFRMT_720x480i240_4_3 58 126 #define HDMI_VFRMT_1440x480i240_4_3 HDMI_VFRMT_720x480i240_4_3 127 #define HDMI_VFRMT_720x480i240_16_9 59 128 #define HDMI_VFRMT_1440x480i240_16_9 HDMI_VFRMT_720x480i240_16_9 129 #define HDMI_VFRMT_1280x720p24_16_9 60 130 #define HDMI_VFRMT_1280x720p25_16_9 61 131 #define HDMI_VFRMT_1280x720p30_16_9 62 132 #define HDMI_VFRMT_1920x1080p120_16_9 63 133 #define HDMI_VFRMT_1920x1080p100_16_9 64 134 /* Video Identification Codes from 65-127 are reserved for the future */ 135 #define HDMI_VFRMT_END 127 136 137 #define EVFRMT_OFF(x) (HDMI_VFRMT_END + x) 138 139 /* extended video formats */ 140 #define HDMI_VFRMT_3840x2160p30_16_9 EVFRMT_OFF(1) 141 #define HDMI_VFRMT_3840x2160p25_16_9 EVFRMT_OFF(2) 142 #define HDMI_VFRMT_3840x2160p24_16_9 EVFRMT_OFF(3) 143 #define HDMI_VFRMT_4096x2160p24_16_9 EVFRMT_OFF(4) 144 #define HDMI_EVFRMT_END HDMI_VFRMT_4096x2160p24_16_9 145 146 #define WQXGA_OFF(x) (HDMI_EVFRMT_END + x) 147 148 /* WQXGA */ 149 #define HDMI_VFRMT_2560x1600p60_16_9 WQXGA_OFF(1) 150 #define HDMI_WQXGAFRMT_END HDMI_VFRMT_2560x1600p60_16_9 151 152 #define WXGA_OFF(x) (HDMI_WQXGAFRMT_END + x) 153 154 /* WXGA */ 155 #define HDMI_VFRMT_1280x800p60_16_10 WXGA_OFF(1) 156 #define HDMI_VFRMT_1366x768p60_16_10 WXGA_OFF(2) 157 #define HDMI_WXGAFRMT_END HDMI_VFRMT_1366x768p60_16_10 158 159 #define ETI_OFF(x) (HDMI_WXGAFRMT_END + x) 160 161 /* ESTABLISHED TIMINGS I */ 162 #define HDMI_VFRMT_800x600p60_4_3 ETI_OFF(1) 163 #define ETI_VFRMT_END HDMI_VFRMT_800x600p60_4_3 164 165 #define ETII_OFF(x) (ETI_VFRMT_END + x) 166 167 /* ESTABLISHED TIMINGS II */ 168 #define HDMI_VFRMT_1024x768p60_4_3 ETII_OFF(1) 169 #define HDMI_VFRMT_1280x1024p60_5_4 ETII_OFF(2) 170 #define ETII_VFRMT_END HDMI_VFRMT_1280x1024p60_5_4 171 172 #define ETIII_OFF(x) (ETII_VFRMT_END + x) 173 174 /* ESTABLISHED TIMINGS III */ 175 #define HDMI_VFRMT_848x480p60_16_9 ETIII_OFF(1) 176 #define HDMI_VFRMT_1280x960p60_4_3 ETIII_OFF(2) 177 #define HDMI_VFRMT_1360x768p60_16_9 ETIII_OFF(3) 178 #define HDMI_VFRMT_1440x900p60_16_10 ETIII_OFF(4) 179 #define HDMI_VFRMT_1400x1050p60_4_3 ETIII_OFF(5) 180 #define HDMI_VFRMT_1680x1050p60_16_10 ETIII_OFF(6) 181 #define HDMI_VFRMT_1600x1200p60_4_3 ETIII_OFF(7) 182 #define HDMI_VFRMT_1920x1200p60_16_10 ETIII_OFF(8) 183 #define ETIII_VFRMT_END HDMI_VFRMT_1920x1200p60_16_10 184 185 #define RESERVE_OFF(x) (ETIII_VFRMT_END + x) 186 187 #define HDMI_VFRMT_RESERVE1 RESERVE_OFF(1) 188 #define HDMI_VFRMT_RESERVE2 RESERVE_OFF(2) 189 #define HDMI_VFRMT_RESERVE3 RESERVE_OFF(3) 190 #define HDMI_VFRMT_RESERVE4 RESERVE_OFF(4) 191 #define HDMI_VFRMT_RESERVE5 RESERVE_OFF(5) 192 #define HDMI_VFRMT_RESERVE6 RESERVE_OFF(6) 193 #define HDMI_VFRMT_RESERVE7 RESERVE_OFF(7) 194 #define HDMI_VFRMT_RESERVE8 RESERVE_OFF(8) 195 #define RESERVE_VFRMT_END HDMI_VFRMT_RESERVE8 196 197 #define HDMI_VFRMT_MAX (RESERVE_VFRMT_END + 1) 198 #define HDMI_VFRMT_FORCE_32BIT 0x7FFFFFFF 199 200 /* Timing information for supported modes */ 201 #define VFRMT_NOT_SUPPORTED(VFRMT) \ 202 {VFRMT, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, \ 203 HDMI_RES_AR_INVALID} 204 205 #define HDMI_VFRMT_640x480p60_4_3_TIMING \ 206 {HDMI_VFRMT_640x480p60_4_3, 640, 16, 96, 48, true, \ 207 480, 10, 2, 33, true, 25200, 60000, false, true, HDMI_RES_AR_4_3} 208 #define HDMI_VFRMT_720x480p60_4_3_TIMING \ 209 {HDMI_VFRMT_720x480p60_4_3, 720, 16, 62, 60, true, \ 210 480, 9, 6, 30, true, 27027, 60000, false, true, HDMI_RES_AR_4_3} 211 #define HDMI_VFRMT_720x480p60_16_9_TIMING \ 212 {HDMI_VFRMT_720x480p60_16_9, 720, 16, 62, 60, true, \ 213 480, 9, 6, 30, true, 27027, 60000, false, true, HDMI_RES_AR_16_9} 214 #define HDMI_VFRMT_1280x720p60_16_9_TIMING \ 215 {HDMI_VFRMT_1280x720p60_16_9, 1280, 110, 40, 220, false, \ 216 720, 5, 5, 20, false, 74250, 60000, false, true, HDMI_RES_AR_16_9} 217 #define HDMI_VFRMT_1920x1080i60_16_9_TIMING \ 218 {HDMI_VFRMT_1920x1080i60_16_9, 1920, 88, 44, 148, false, \ 219 540, 2, 5, 5, false, 74250, 60000, false, true, HDMI_RES_AR_16_9} 220 #define HDMI_VFRMT_1440x480i60_4_3_TIMING \ 221 {HDMI_VFRMT_1440x480i60_4_3, 1440, 38, 124, 114, true, \ 222 240, 4, 3, 15, true, 27000, 60000, true, true, HDMI_RES_AR_4_3} 223 #define HDMI_VFRMT_1440x480i60_16_9_TIMING \ 224 {HDMI_VFRMT_1440x480i60_16_9, 1440, 38, 124, 114, true, \ 225 240, 4, 3, 15, true, 27000, 60000, true, true, HDMI_RES_AR_16_9} 226 #define HDMI_VFRMT_1920x1080p60_16_9_TIMING \ 227 {HDMI_VFRMT_1920x1080p60_16_9, 1920, 88, 44, 148, false, \ 228 1080, 4, 5, 36, false, 148500, 60000, false, true, HDMI_RES_AR_16_9} 229 #define HDMI_VFRMT_720x576p50_4_3_TIMING \ 230 {HDMI_VFRMT_720x576p50_4_3, 720, 12, 64, 68, true, \ 231 576, 5, 5, 39, true, 27000, 50000, false, true, HDMI_RES_AR_4_3} 232 #define HDMI_VFRMT_720x576p50_16_9_TIMING \ 233 {HDMI_VFRMT_720x576p50_16_9, 720, 12, 64, 68, true, \ 234 576, 5, 5, 39, true, 27000, 50000, false, true, HDMI_RES_AR_16_9} 235 #define HDMI_VFRMT_1280x720p50_16_9_TIMING \ 236 {HDMI_VFRMT_1280x720p50_16_9, 1280, 440, 40, 220, false, \ 237 720, 5, 5, 20, false, 74250, 50000, false, true, HDMI_RES_AR_16_9} 238 #define HDMI_VFRMT_1440x576i50_4_3_TIMING \ 239 {HDMI_VFRMT_1440x576i50_4_3, 1440, 24, 126, 138, true, \ 240 288, 2, 3, 19, true, 27000, 50000, true, true, HDMI_RES_AR_4_3} 241 #define HDMI_VFRMT_1440x576i50_16_9_TIMING \ 242 {HDMI_VFRMT_1440x576i50_16_9, 1440, 24, 126, 138, true, \ 243 288, 2, 3, 19, true, 27000, 50000, true, true, HDMI_RES_AR_16_9} 244 #define HDMI_VFRMT_1920x1080p50_16_9_TIMING \ 245 {HDMI_VFRMT_1920x1080p50_16_9, 1920, 528, 44, 148, false, \ 246 1080, 4, 5, 36, false, 148500, 50000, false, true, HDMI_RES_AR_16_9} 247 #define HDMI_VFRMT_1920x1080p24_16_9_TIMING \ 248 {HDMI_VFRMT_1920x1080p24_16_9, 1920, 638, 44, 148, false, \ 249 1080, 4, 5, 36, false, 74250, 24000, false, true, HDMI_RES_AR_16_9} 250 #define HDMI_VFRMT_1920x1080p25_16_9_TIMING \ 251 {HDMI_VFRMT_1920x1080p25_16_9, 1920, 528, 44, 148, false, \ 252 1080, 4, 5, 36, false, 74250, 25000, false, true, HDMI_RES_AR_16_9} 253 #define HDMI_VFRMT_1920x1080p30_16_9_TIMING \ 254 {HDMI_VFRMT_1920x1080p30_16_9, 1920, 88, 44, 148, false, \ 255 1080, 4, 5, 36, false, 74250, 30000, false, true, HDMI_RES_AR_16_9} 256 #define HDMI_VFRMT_1024x768p60_4_3_TIMING \ 257 {HDMI_VFRMT_1024x768p60_4_3, 1024, 24, 136, 160, false, \ 258 768, 2, 6, 29, false, 65000, 60000, false, true, HDMI_RES_AR_4_3} 259 #define HDMI_VFRMT_1280x1024p60_5_4_TIMING \ 260 {HDMI_VFRMT_1280x1024p60_5_4, 1280, 48, 112, 248, false, \ 261 1024, 1, 3, 38, false, 108000, 60000, false, true, HDMI_RES_AR_5_4} 262 #define HDMI_VFRMT_2560x1600p60_16_9_TIMING \ 263 {HDMI_VFRMT_2560x1600p60_16_9, 2560, 48, 32, 80, false, \ 264 1600, 3, 6, 37, false, 268500, 60000, false, true, HDMI_RES_AR_16_9} 265 #define HDMI_VFRMT_3840x2160p30_16_9_TIMING \ 266 {HDMI_VFRMT_3840x2160p30_16_9, 3840, 176, 88, 296, false, \ 267 2160, 8, 10, 72, false, 297000, 30000, false, true, HDMI_RES_AR_16_9} 268 #define HDMI_VFRMT_3840x2160p25_16_9_TIMING \ 269 {HDMI_VFRMT_3840x2160p25_16_9, 3840, 1056, 88, 296, false, \ 270 2160, 8, 10, 72, false, 297000, 25000, false, true, HDMI_RES_AR_16_9} 271 #define HDMI_VFRMT_3840x2160p24_16_9_TIMING \ 272 {HDMI_VFRMT_3840x2160p24_16_9, 3840, 1276, 88, 296, false, \ 273 2160, 8, 10, 72, false, 297000, 24000, false, true, HDMI_RES_AR_16_9} 274 #define HDMI_VFRMT_4096x2160p24_16_9_TIMING \ 275 {HDMI_VFRMT_4096x2160p24_16_9, 4096, 1020, 88, 296, false, \ 276 2160, 8, 10, 72, false, 297000, 24000, false, true, HDMI_RES_AR_16_9} 277 278 #define HDMI_VFRMT_800x600p60_4_3_TIMING \ 279 {HDMI_VFRMT_800x600p60_4_3, 800, 40, 128, 88, false, \ 280 600, 1, 4, 23, false, 40000, 60000, false, true, HDMI_RES_AR_4_3} 281 #define HDMI_VFRMT_848x480p60_16_9_TIMING \ 282 {HDMI_VFRMT_848x480p60_16_9, 848, 16, 112, 112, false, \ 283 480, 6, 8, 23, false, 33750, 60000, false, true, HDMI_RES_AR_16_9} 284 #define HDMI_VFRMT_1280x960p60_4_3_TIMING\ 285 {HDMI_VFRMT_1280x960p60_4_3, 1280, 96, 112, 312, false, \ 286 960, 1, 3, 36, false, 108000, 60000, false, true, HDMI_RES_AR_4_3} 287 #define HDMI_VFRMT_1360x768p60_16_9_TIMING\ 288 {HDMI_VFRMT_1360x768p60_16_9, 1360, 64, 112, 256, false, \ 289 768, 3, 6, 18, false, 85500, 60000, false, true, HDMI_RES_AR_16_9} 290 #define HDMI_VFRMT_1440x900p60_16_10_TIMING\ 291 {HDMI_VFRMT_1440x900p60_16_10, 1440, 48, 32, 80, false, \ 292 900, 3, 6, 17, true, 88750, 60000, false, true, HDMI_RES_AR_16_10} 293 #define HDMI_VFRMT_1400x1050p60_4_3_TIMING\ 294 {HDMI_VFRMT_1400x1050p60_4_3, 1400, 48, 32, 80, false, \ 295 1050, 3, 4, 23, true, 101000, 60000, false, true, HDMI_RES_AR_4_3} 296 #define HDMI_VFRMT_1680x1050p60_16_10_TIMING\ 297 {HDMI_VFRMT_1680x1050p60_16_10, 1680, 48, 32, 80, false, \ 298 1050, 3, 6, 21, true, 119000, 60000, false, true, HDMI_RES_AR_16_10} 299 #define HDMI_VFRMT_1600x1200p60_4_3_TIMING\ 300 {HDMI_VFRMT_1600x1200p60_4_3, 1600, 64, 192, 304, false, \ 301 1200, 1, 3, 46, false, 162000, 60000, false, true, HDMI_RES_AR_4_3} 302 #define HDMI_VFRMT_1920x1200p60_16_10_TIMING\ 303 {HDMI_VFRMT_1920x1200p60_16_10, 1920, 48, 32, 80, false,\ 304 1200, 3, 6, 26, true, 154000, 60000, false, true, HDMI_RES_AR_16_10} 305 #define HDMI_VFRMT_1366x768p60_16_10_TIMING\ 306 {HDMI_VFRMT_1366x768p60_16_10, 1366, 70, 143, 213, false,\ 307 768, 3, 3, 24, false, 85500, 60000, false, true, HDMI_RES_AR_16_10} 308 #define HDMI_VFRMT_1280x800p60_16_10_TIMING\ 309 {HDMI_VFRMT_1280x800p60_16_10, 1280, 72, 128, 200, true,\ 310 800, 3, 6, 22, false, 83500, 60000, false, true, HDMI_RES_AR_16_10} 311 312 #define MSM_HDMI_MODES_SET_TIMING(LUT, MODE) do { \ 313 struct msm_hdmi_mode_timing_info mode = MODE##_TIMING; \ 314 LUT[MODE] = mode;\ 315 } while (0) 316 317 #define MSM_HDMI_MODES_INIT_TIMINGS(__lut) \ 318 do { \ 319 unsigned int i; \ 320 for (i = 0; i < HDMI_VFRMT_MAX; i++) { \ 321 struct msm_hdmi_mode_timing_info mode = \ 322 VFRMT_NOT_SUPPORTED(i); \ 323 (__lut)[i] = mode; \ 324 } \ 325 } while (0) 326 327 #define MSM_HDMI_MODES_SET_SUPP_TIMINGS(__lut, __type) \ 328 do { \ 329 if (__type & MSM_HDMI_MODES_CEA) { \ 330 MSM_HDMI_MODES_SET_TIMING(__lut, \ 331 HDMI_VFRMT_640x480p60_4_3); \ 332 MSM_HDMI_MODES_SET_TIMING(__lut, \ 333 HDMI_VFRMT_720x480p60_4_3); \ 334 MSM_HDMI_MODES_SET_TIMING(__lut, \ 335 HDMI_VFRMT_720x480p60_16_9); \ 336 MSM_HDMI_MODES_SET_TIMING(__lut, \ 337 HDMI_VFRMT_1280x720p60_16_9); \ 338 MSM_HDMI_MODES_SET_TIMING(__lut, \ 339 HDMI_VFRMT_1920x1080i60_16_9); \ 340 MSM_HDMI_MODES_SET_TIMING(__lut, \ 341 HDMI_VFRMT_1440x480i60_4_3); \ 342 MSM_HDMI_MODES_SET_TIMING(__lut, \ 343 HDMI_VFRMT_1440x480i60_16_9); \ 344 MSM_HDMI_MODES_SET_TIMING(__lut, \ 345 HDMI_VFRMT_1920x1080p60_16_9); \ 346 MSM_HDMI_MODES_SET_TIMING(__lut, \ 347 HDMI_VFRMT_720x576p50_4_3); \ 348 MSM_HDMI_MODES_SET_TIMING(__lut, \ 349 HDMI_VFRMT_720x576p50_16_9); \ 350 MSM_HDMI_MODES_SET_TIMING(__lut, \ 351 HDMI_VFRMT_1280x720p50_16_9); \ 352 MSM_HDMI_MODES_SET_TIMING(__lut, \ 353 HDMI_VFRMT_1440x576i50_4_3); \ 354 MSM_HDMI_MODES_SET_TIMING(__lut, \ 355 HDMI_VFRMT_1440x576i50_16_9); \ 356 MSM_HDMI_MODES_SET_TIMING(__lut, \ 357 HDMI_VFRMT_1920x1080p50_16_9); \ 358 MSM_HDMI_MODES_SET_TIMING(__lut, \ 359 HDMI_VFRMT_1920x1080p24_16_9); \ 360 MSM_HDMI_MODES_SET_TIMING(__lut, \ 361 HDMI_VFRMT_1920x1080p25_16_9); \ 362 MSM_HDMI_MODES_SET_TIMING(__lut, \ 363 HDMI_VFRMT_1920x1080p30_16_9); \ 364 } \ 365 if (__type & MSM_HDMI_MODES_XTND) { \ 366 MSM_HDMI_MODES_SET_TIMING(__lut, \ 367 HDMI_VFRMT_3840x2160p30_16_9); \ 368 MSM_HDMI_MODES_SET_TIMING(__lut, \ 369 HDMI_VFRMT_3840x2160p25_16_9); \ 370 MSM_HDMI_MODES_SET_TIMING(__lut, \ 371 HDMI_VFRMT_3840x2160p24_16_9); \ 372 MSM_HDMI_MODES_SET_TIMING(__lut, \ 373 HDMI_VFRMT_4096x2160p24_16_9); \ 374 } \ 375 if (__type & MSM_HDMI_MODES_DVI) { \ 376 MSM_HDMI_MODES_SET_TIMING(__lut, \ 377 HDMI_VFRMT_1024x768p60_4_3); \ 378 MSM_HDMI_MODES_SET_TIMING(__lut, \ 379 HDMI_VFRMT_1280x1024p60_5_4); \ 380 MSM_HDMI_MODES_SET_TIMING(__lut, \ 381 HDMI_VFRMT_2560x1600p60_16_9); \ 382 MSM_HDMI_MODES_SET_TIMING(__lut, \ 383 HDMI_VFRMT_800x600p60_4_3); \ 384 MSM_HDMI_MODES_SET_TIMING(__lut, \ 385 HDMI_VFRMT_848x480p60_16_9); \ 386 MSM_HDMI_MODES_SET_TIMING(__lut, \ 387 HDMI_VFRMT_1280x960p60_4_3); \ 388 MSM_HDMI_MODES_SET_TIMING(__lut, \ 389 HDMI_VFRMT_1360x768p60_16_9); \ 390 MSM_HDMI_MODES_SET_TIMING(__lut, \ 391 HDMI_VFRMT_1440x900p60_16_10); \ 392 MSM_HDMI_MODES_SET_TIMING(__lut, \ 393 HDMI_VFRMT_1400x1050p60_4_3); \ 394 MSM_HDMI_MODES_SET_TIMING(__lut, \ 395 HDMI_VFRMT_1680x1050p60_16_10); \ 396 MSM_HDMI_MODES_SET_TIMING(__lut, \ 397 HDMI_VFRMT_1600x1200p60_4_3); \ 398 MSM_HDMI_MODES_SET_TIMING(__lut, \ 399 HDMI_VFRMT_1920x1200p60_16_10); \ 400 MSM_HDMI_MODES_SET_TIMING(__lut, \ 401 HDMI_VFRMT_1366x768p60_16_10); \ 402 MSM_HDMI_MODES_SET_TIMING(__lut, \ 403 HDMI_VFRMT_1280x800p60_16_10); \ 404 } \ 405 } while (0) 406 407 #define MSM_HDMI_MODES_GET_DETAILS(mode, MODE) do { \ 408 struct msm_hdmi_mode_timing_info info = MODE##_TIMING; \ 409 *mode = info; \ 410 } while (0) 411 412 #endif /* _UAPI_MSM_HDMI_MODES_H__ */ 413