Lines Matching +full:1 +full:hz
62 /* First detailed mode wrong, use largest 60Hz mode */
63 #define EDID_QUIRK_PREFER_LARGE_60 (1 << 0)
65 #define EDID_QUIRK_135_CLOCK_TOO_HIGH (1 << 1)
66 /* Prefer the largest mode at 75 Hz */
67 #define EDID_QUIRK_PREFER_LARGE_75 (1 << 2)
69 #define EDID_QUIRK_DETAILED_IN_CM (1 << 3)
73 #define EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE (1 << 4)
75 #define EDID_QUIRK_DETAILED_SYNC_PP (1 << 6)
77 #define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7)
79 #define EDID_QUIRK_FORCE_8BPC (1 << 8)
81 #define EDID_QUIRK_FORCE_12BPC (1 << 9)
83 #define EDID_QUIRK_FORCE_6BPC (1 << 10)
85 #define EDID_QUIRK_FORCE_10BPC (1 << 11)
87 #define EDID_QUIRK_NON_DESKTOP (1 << 12)
98 #define LEVEL_GTF 1
225 /* 0x01 - 640x350@85Hz */
229 /* 0x02 - 640x400@85Hz */
233 /* 0x03 - 720x400@85Hz */
237 /* 0x04 - 640x480@60Hz */
241 /* 0x05 - 640x480@72Hz */
245 /* 0x06 - 640x480@75Hz */
249 /* 0x07 - 640x480@85Hz */
253 /* 0x08 - 800x600@56Hz */
257 /* 0x09 - 800x600@60Hz */
261 /* 0x0a - 800x600@72Hz */
265 /* 0x0b - 800x600@75Hz */
269 /* 0x0c - 800x600@85Hz */
273 /* 0x0d - 800x600@120Hz RB */
277 /* 0x0e - 848x480@60Hz */
281 /* 0x0f - 1024x768@43Hz, interlace */
286 /* 0x10 - 1024x768@60Hz */
290 /* 0x11 - 1024x768@70Hz */
294 /* 0x12 - 1024x768@75Hz */
298 /* 0x13 - 1024x768@85Hz */
302 /* 0x14 - 1024x768@120Hz RB */
306 /* 0x15 - 1152x864@75Hz */
310 /* 0x55 - 1280x720@60Hz */
314 /* 0x16 - 1280x768@60Hz RB */
318 /* 0x17 - 1280x768@60Hz */
322 /* 0x18 - 1280x768@75Hz */
326 /* 0x19 - 1280x768@85Hz */
330 /* 0x1a - 1280x768@120Hz RB */
334 /* 0x1b - 1280x800@60Hz RB */
338 /* 0x1c - 1280x800@60Hz */
342 /* 0x1d - 1280x800@75Hz */
346 /* 0x1e - 1280x800@85Hz */
350 /* 0x1f - 1280x800@120Hz RB */
354 /* 0x20 - 1280x960@60Hz */
358 /* 0x21 - 1280x960@85Hz */
362 /* 0x22 - 1280x960@120Hz RB */
366 /* 0x23 - 1280x1024@60Hz */
370 /* 0x24 - 1280x1024@75Hz */
374 /* 0x25 - 1280x1024@85Hz */
378 /* 0x26 - 1280x1024@120Hz RB */
382 /* 0x27 - 1360x768@60Hz */
386 /* 0x28 - 1360x768@120Hz RB */
390 /* 0x51 - 1366x768@60Hz */
394 /* 0x56 - 1366x768@60Hz */
398 /* 0x29 - 1400x1050@60Hz RB */
402 /* 0x2a - 1400x1050@60Hz */
406 /* 0x2b - 1400x1050@75Hz */
410 /* 0x2c - 1400x1050@85Hz */
414 /* 0x2d - 1400x1050@120Hz RB */
418 /* 0x2e - 1440x900@60Hz RB */
422 /* 0x2f - 1440x900@60Hz */
426 /* 0x30 - 1440x900@75Hz */
430 /* 0x31 - 1440x900@85Hz */
434 /* 0x32 - 1440x900@120Hz RB */
438 /* 0x53 - 1600x900@60Hz */
442 /* 0x33 - 1600x1200@60Hz */
446 /* 0x34 - 1600x1200@65Hz */
450 /* 0x35 - 1600x1200@70Hz */
454 /* 0x36 - 1600x1200@75Hz */
458 /* 0x37 - 1600x1200@85Hz */
462 /* 0x38 - 1600x1200@120Hz RB */
466 /* 0x39 - 1680x1050@60Hz RB */
470 /* 0x3a - 1680x1050@60Hz */
474 /* 0x3b - 1680x1050@75Hz */
478 /* 0x3c - 1680x1050@85Hz */
482 /* 0x3d - 1680x1050@120Hz RB */
486 /* 0x3e - 1792x1344@60Hz */
490 /* 0x3f - 1792x1344@75Hz */
494 /* 0x40 - 1792x1344@120Hz RB */
498 /* 0x41 - 1856x1392@60Hz */
502 /* 0x42 - 1856x1392@75Hz */
506 /* 0x43 - 1856x1392@120Hz RB */
510 /* 0x52 - 1920x1080@60Hz */
514 /* 0x44 - 1920x1200@60Hz RB */
518 /* 0x45 - 1920x1200@60Hz */
522 /* 0x46 - 1920x1200@75Hz */
526 /* 0x47 - 1920x1200@85Hz */
530 /* 0x48 - 1920x1200@120Hz RB */
534 /* 0x49 - 1920x1440@60Hz */
538 /* 0x4a - 1920x1440@75Hz */
542 /* 0x4b - 1920x1440@120Hz RB */
546 /* 0x54 - 2048x1152@60Hz */
550 /* 0x4c - 2560x1600@60Hz RB */
554 /* 0x4d - 2560x1600@60Hz */
558 /* 0x4e - 2560x1600@75Hz */
562 /* 0x4f - 2560x1600@85Hz */
566 /* 0x50 - 2560x1600@120Hz RB */
570 /* 0x57 - 4096x2160@60Hz RB */
574 /* 0x58 - 4096x2160@59.94Hz RB */
592 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600@60Hz */
595 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600@56Hz */
598 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480@75Hz */
601 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480@72Hz */
604 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480@67Hz */
607 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 640x480@60Hz */
610 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 720x400@88Hz */
613 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 720x400@70Hz */
616 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 1280x1024@75Hz */
619 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 1024x768@75Hz */
622 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 1024x768@70Hz */
625 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 1024x768@60Hz */
628 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_INTERLACE) }, /* 1024x768@43Hz */
631 DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC) }, /* 832x624@75Hz */
634 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600@75Hz */
637 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 800x600@72Hz */
640 DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC) }, /* 1152x864@75Hz */
661 { 1280, 768, 60, 1 },
671 { 1440, 900, 60, 1 },
675 { 1400, 1050, 60, 1 },
680 { 1680, 1050, 60, 1 },
694 { 1920, 1200, 60, 1 },
719 /* 1 - 640x480@60Hz 4:3 */
724 /* 2 - 720x480@60Hz 4:3 */
729 /* 3 - 720x480@60Hz 16:9 */
734 /* 4 - 1280x720@60Hz 16:9 */
739 /* 5 - 1920x1080i@60Hz 16:9 */
745 /* 6 - 720(1440)x480i@60Hz 4:3 */
751 /* 7 - 720(1440)x480i@60Hz 16:9 */
757 /* 8 - 720(1440)x240@60Hz 4:3 */
763 /* 9 - 720(1440)x240@60Hz 16:9 */
769 /* 10 - 2880x480i@60Hz 4:3 */
775 /* 11 - 2880x480i@60Hz 16:9 */
781 /* 12 - 2880x240@60Hz 4:3 */
786 /* 13 - 2880x240@60Hz 16:9 */
791 /* 14 - 1440x480@60Hz 4:3 */
796 /* 15 - 1440x480@60Hz 16:9 */
801 /* 16 - 1920x1080@60Hz 16:9 */
806 /* 17 - 720x576@50Hz 4:3 */
811 /* 18 - 720x576@50Hz 16:9 */
816 /* 19 - 1280x720@50Hz 16:9 */
821 /* 20 - 1920x1080i@50Hz 16:9 */
827 /* 21 - 720(1440)x576i@50Hz 4:3 */
833 /* 22 - 720(1440)x576i@50Hz 16:9 */
839 /* 23 - 720(1440)x288@50Hz 4:3 */
845 /* 24 - 720(1440)x288@50Hz 16:9 */
851 /* 25 - 2880x576i@50Hz 4:3 */
857 /* 26 - 2880x576i@50Hz 16:9 */
863 /* 27 - 2880x288@50Hz 4:3 */
868 /* 28 - 2880x288@50Hz 16:9 */
873 /* 29 - 1440x576@50Hz 4:3 */
878 /* 30 - 1440x576@50Hz 16:9 */
883 /* 31 - 1920x1080@50Hz 16:9 */
888 /* 32 - 1920x1080@24Hz 16:9 */
893 /* 33 - 1920x1080@25Hz 16:9 */
898 /* 34 - 1920x1080@30Hz 16:9 */
903 /* 35 - 2880x480@60Hz 4:3 */
908 /* 36 - 2880x480@60Hz 16:9 */
913 /* 37 - 2880x576@50Hz 4:3 */
918 /* 38 - 2880x576@50Hz 16:9 */
923 /* 39 - 1920x1080i@50Hz 16:9 */
929 /* 40 - 1920x1080i@100Hz 16:9 */
935 /* 41 - 1280x720@100Hz 16:9 */
940 /* 42 - 720x576@100Hz 4:3 */
945 /* 43 - 720x576@100Hz 16:9 */
950 /* 44 - 720(1440)x576i@100Hz 4:3 */
956 /* 45 - 720(1440)x576i@100Hz 16:9 */
962 /* 46 - 1920x1080i@120Hz 16:9 */
968 /* 47 - 1280x720@120Hz 16:9 */
973 /* 48 - 720x480@120Hz 4:3 */
978 /* 49 - 720x480@120Hz 16:9 */
983 /* 50 - 720(1440)x480i@120Hz 4:3 */
989 /* 51 - 720(1440)x480i@120Hz 16:9 */
995 /* 52 - 720x576@200Hz 4:3 */
1000 /* 53 - 720x576@200Hz 16:9 */
1005 /* 54 - 720(1440)x576i@200Hz 4:3 */
1011 /* 55 - 720(1440)x576i@200Hz 16:9 */
1017 /* 56 - 720x480@240Hz 4:3 */
1022 /* 57 - 720x480@240Hz 16:9 */
1027 /* 58 - 720(1440)x480i@240Hz 4:3 */
1033 /* 59 - 720(1440)x480i@240Hz 16:9 */
1039 /* 60 - 1280x720@24Hz 16:9 */
1044 /* 61 - 1280x720@25Hz 16:9 */
1049 /* 62 - 1280x720@30Hz 16:9 */
1054 /* 63 - 1920x1080@120Hz 16:9 */
1059 /* 64 - 1920x1080@100Hz 16:9 */
1064 /* 65 - 1280x720@24Hz 64:27 */
1069 /* 66 - 1280x720@25Hz 64:27 */
1074 /* 67 - 1280x720@30Hz 64:27 */
1079 /* 68 - 1280x720@50Hz 64:27 */
1084 /* 69 - 1280x720@60Hz 64:27 */
1089 /* 70 - 1280x720@100Hz 64:27 */
1094 /* 71 - 1280x720@120Hz 64:27 */
1099 /* 72 - 1920x1080@24Hz 64:27 */
1104 /* 73 - 1920x1080@25Hz 64:27 */
1109 /* 74 - 1920x1080@30Hz 64:27 */
1114 /* 75 - 1920x1080@50Hz 64:27 */
1119 /* 76 - 1920x1080@60Hz 64:27 */
1124 /* 77 - 1920x1080@100Hz 64:27 */
1129 /* 78 - 1920x1080@120Hz 64:27 */
1134 /* 79 - 1680x720@24Hz 64:27 */
1139 /* 80 - 1680x720@25Hz 64:27 */
1144 /* 81 - 1680x720@30Hz 64:27 */
1149 /* 82 - 1680x720@50Hz 64:27 */
1154 /* 83 - 1680x720@60Hz 64:27 */
1159 /* 84 - 1680x720@100Hz 64:27 */
1164 /* 85 - 1680x720@120Hz 64:27 */
1169 /* 86 - 2560x1080@24Hz 64:27 */
1174 /* 87 - 2560x1080@25Hz 64:27 */
1179 /* 88 - 2560x1080@30Hz 64:27 */
1184 /* 89 - 2560x1080@50Hz 64:27 */
1189 /* 90 - 2560x1080@60Hz 64:27 */
1194 /* 91 - 2560x1080@100Hz 64:27 */
1199 /* 92 - 2560x1080@120Hz 64:27 */
1204 /* 93 - 3840x2160@24Hz 16:9 */
1209 /* 94 - 3840x2160@25Hz 16:9 */
1214 /* 95 - 3840x2160@30Hz 16:9 */
1219 /* 96 - 3840x2160@50Hz 16:9 */
1224 /* 97 - 3840x2160@60Hz 16:9 */
1229 /* 98 - 4096x2160@24Hz 256:135 */
1234 /* 99 - 4096x2160@25Hz 256:135 */
1239 /* 100 - 4096x2160@30Hz 256:135 */
1244 /* 101 - 4096x2160@50Hz 256:135 */
1249 /* 102 - 4096x2160@60Hz 256:135 */
1254 /* 103 - 3840x2160@24Hz 64:27 */
1259 /* 104 - 3840x2160@25Hz 64:27 */
1264 /* 105 - 3840x2160@30Hz 64:27 */
1269 /* 106 - 3840x2160@50Hz 64:27 */
1274 /* 107 - 3840x2160@60Hz 64:27 */
1279 /* 108 - 1280x720@48Hz 16:9 */
1284 /* 109 - 1280x720@48Hz 64:27 */
1289 /* 110 - 1680x720@48Hz 64:27 */
1294 /* 111 - 1920x1080@48Hz 16:9 */
1299 /* 112 - 1920x1080@48Hz 64:27 */
1304 /* 113 - 2560x1080@48Hz 64:27 */
1309 /* 114 - 3840x2160@48Hz 16:9 */
1314 /* 115 - 4096x2160@48Hz 256:135 */
1319 /* 116 - 3840x2160@48Hz 64:27 */
1324 /* 117 - 3840x2160@100Hz 16:9 */
1329 /* 118 - 3840x2160@120Hz 16:9 */
1334 /* 119 - 3840x2160@100Hz 64:27 */
1339 /* 120 - 3840x2160@120Hz 64:27 */
1344 /* 121 - 5120x2160@24Hz 64:27 */
1349 /* 122 - 5120x2160@25Hz 64:27 */
1354 /* 123 - 5120x2160@30Hz 64:27 */
1359 /* 124 - 5120x2160@48Hz 64:27 */
1364 /* 125 - 5120x2160@50Hz 64:27 */
1369 /* 126 - 5120x2160@60Hz 64:27 */
1374 /* 127 - 5120x2160@100Hz 64:27 */
1387 /* 193 - 5120x2160@120Hz 64:27 */
1392 /* 194 - 7680x4320@24Hz 16:9 */
1397 /* 195 - 7680x4320@25Hz 16:9 */
1402 /* 196 - 7680x4320@30Hz 16:9 */
1407 /* 197 - 7680x4320@48Hz 16:9 */
1412 /* 198 - 7680x4320@50Hz 16:9 */
1417 /* 199 - 7680x4320@60Hz 16:9 */
1422 /* 200 - 7680x4320@100Hz 16:9 */
1427 /* 201 - 7680x4320@120Hz 16:9 */
1432 /* 202 - 7680x4320@24Hz 64:27 */
1437 /* 203 - 7680x4320@25Hz 64:27 */
1442 /* 204 - 7680x4320@30Hz 64:27 */
1447 /* 205 - 7680x4320@48Hz 64:27 */
1452 /* 206 - 7680x4320@50Hz 64:27 */
1457 /* 207 - 7680x4320@60Hz 64:27 */
1462 /* 208 - 7680x4320@100Hz 64:27 */
1467 /* 209 - 7680x4320@120Hz 64:27 */
1472 /* 210 - 10240x4320@24Hz 64:27 */
1477 /* 211 - 10240x4320@25Hz 64:27 */
1482 /* 212 - 10240x4320@30Hz 64:27 */
1487 /* 213 - 10240x4320@48Hz 64:27 */
1492 /* 214 - 10240x4320@50Hz 64:27 */
1497 /* 215 - 10240x4320@60Hz 64:27 */
1502 /* 216 - 10240x4320@100Hz 64:27 */
1507 /* 217 - 10240x4320@120Hz 64:27 */
1512 /* 218 - 4096x2160@100Hz 256:135 */
1517 /* 219 - 4096x2160@120Hz 256:135 */
1528 /* 0 - dummy, VICs start at 1 */
1530 /* 1 - 3840x2160@30Hz */
1536 /* 2 - 3840x2160@25Hz */
1542 /* 3 - 3840x2160@24Hz */
1548 /* 4 - 4096x2160@24Hz (SMPTE) */
1594 for (i = 0; i < EDID_LENGTH - 1; i++) in drm_edid_block_checksum()
1604 if (raw_edid[EDID_LENGTH - 1] != real_checksum) in drm_edid_block_checksum_diff()
1635 edid1_len = EDID_LENGTH * (1 + edid1->extensions); in drm_edid_are_equal()
1636 edid2_len = EDID_LENGTH * (1 + edid2->extensions); in drm_edid_are_equal()
1680 /* Displayport Link CTS Core 1.2 rev1.1 test 4.2.2.6 in drm_edid_block_valid()
1716 if (edid->version != 1) { in drm_edid_block_valid()
1717 DRM_NOTE("EDID has major version %d, instead of 1\n", edid->version); in drm_edid_block_valid()
1738 " \t", DUMP_PREFIX_NONE, 16, 1, in drm_edid_block_valid()
1780 * Return: 0 on success or -1 on failure.
1787 unsigned char segment = block >> 1; in drm_do_probe_ddc_edid()
1803 .len = 1, in drm_do_probe_ddc_edid()
1808 .len = 1, in drm_do_probe_ddc_edid()
1831 return ret == xfers ? 0 : -1; in drm_do_probe_ddc_edid()
1860 prefix, DUMP_PREFIX_NONE, 16, 1, in connector_bad_edid()
1965 new = krealloc(edid, (valid_extensions + 1) * EDID_LENGTH, GFP_KERNEL); in drm_do_get_edid()
1970 for (j = 1; j <= edid[0x7e]; j++) { in drm_do_get_edid()
1987 connector_bad_edid(connector, edid, edid[0x7e] + 1); in drm_do_get_edid()
1989 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; in drm_do_get_edid()
1992 new = kmalloc_array(valid_extensions + 1, EDID_LENGTH, in drm_do_get_edid()
2015 connector_bad_edid(connector, edid, 1); in drm_do_get_edid()
2033 return (drm_do_probe_ddc_edid(adapter, &out, 0, 1) == 0); in drm_probe_ddc()
2097 return kmemdup(edid, (edid->extensions + 1) * EDID_LENGTH, GFP_KERNEL); in drm_edid_duplicate()
2115 edid_vendor[1] = (((edid->mfg_id[0] & 0x3) << 3) | in edid_vendor()
2116 ((edid->mfg_id[1] & 0xe0) >> 5)) + '@'; in edid_vendor()
2117 edid_vendor[2] = (edid->mfg_id[1] & 0x1f) + '@'; in edid_vendor()
2244 return d[0] == 0x00 && d[1] == 0x00 && in is_display_descriptor()
2250 return d[0] != 0x00 || d[1] != 0x00; in is_detailed_timing_descriptor()
2276 if (ext[0x01] != 1) in vtb_for_each_detailed_block()
2295 for (i = 1; i <= raw_edid[0x7e]; i++) { in drm_for_each_detailed_block()
2468 } else if (aspect_ratio == 1) in drm_mode_std()
2475 /* HDTV hack, part 1 */ in drm_mode_std()
2501 mode->hsync_start = mode->hsync_start - 1; in drm_mode_std()
2502 mode->hsync_end = mode->hsync_end - 1; in drm_mode_std()
2586 mode->vtotal |= 1; in drm_mode_do_interlace_quirk()
2667 mode->htotal = mode->hsync_end + 1; in drm_mode_detailed()
2669 mode->vtotal = mode->vsync_end + 1; in drm_mode_detailed()
2905 if (!version_greater(closure->edid, 1, 1)) in do_inferred_modes()
2916 if (!version_greater(closure->edid, 1, 3)) in do_inferred_modes()
2937 if (version_greater(edid, 1, 0)) in add_inferred_modes()
2956 if (est[i] & (1 << j)) { in drm_est3_modes()
3006 if (est_bits & (1<<i)) { in add_established_modes()
3017 if (version_greater(edid, 1, 0)) in add_established_modes()
3076 if (version_greater(edid, 1, 0)) in add_standard_modes()
3103 height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2; in drm_cvt_modes()
3104 switch (cvt->code[1] & 0x0c) { in drm_cvt_modes()
3119 for (j = 1; j < 5; j++) { in drm_cvt_modes()
3120 if (cvt->code[2] & (1 << j)) { in drm_cvt_modes()
3154 if (version_greater(edid, 1, 2)) in add_cvt_modes()
3211 if (closure.preferred && !version_greater(edid, 1, 3)) in add_detailed_modes()
3229 #define EDID_BASIC_AUDIO (1 << 6)
3230 #define EDID_CEA_YCRCB444 (1 << 5)
3231 #define EDID_CEA_YCRCB422 (1 << 4)
3232 #define EDID_CEA_VCDB_QS (1 << 6)
3249 edid_ext = (u8 *)edid + EDID_LENGTH * (i + 1); in drm_find_edid_extension()
3257 *ext_index = i + 1; in drm_find_edid_extension()
3275 *length = EDID_LENGTH - 1; in drm_find_displayid_extension()
3276 *idx = 1; in drm_find_displayid_extension()
3323 BUILD_BUG_ON(1 + ARRAY_SIZE(edid_cea_modes_1) - 1 != 127); in cea_mode_for_vic()
3324 BUILD_BUG_ON(193 + ARRAY_SIZE(edid_cea_modes_193) - 1 != 219); in cea_mode_for_vic()
3326 if (vic >= 1 && vic < 1 + ARRAY_SIZE(edid_cea_modes_1)) in cea_mode_for_vic()
3327 return &edid_cea_modes_1[vic - 1]; in cea_mode_for_vic()
3340 if (++vic == 1 + ARRAY_SIZE(edid_cea_modes_1)) in cea_next_vic()
3347 * (60Hz vs. 59.94Hz etc.)
3358 * edid_cea_modes contains the 59.94Hz in cea_mode_alternate_clock()
3360 * and the 60Hz variant otherwise. in cea_mode_alternate_clock()
3417 for (vic = 1; vic < cea_num_vics(); vic = cea_next_vic(vic)) { in drm_match_cea_mode_clock_tolerance()
3421 /* Check both 60Hz and 59.94Hz */ in drm_match_cea_mode_clock_tolerance()
3456 for (vic = 1; vic < cea_num_vics(); vic = cea_next_vic(vic)) { in drm_match_cea_mode()
3460 /* Check both 60Hz and 59.94Hz */ in drm_match_cea_mode()
3520 for (vic = 1; vic < ARRAY_SIZE(edid_4k_modes); vic++) { in drm_match_hdmi_mode_clock_tolerance()
3558 for (vic = 1; vic < ARRAY_SIZE(edid_4k_modes); vic++) { in drm_match_hdmi_mode()
3654 if ((svd >= 1 && svd <= 64) || (svd >= 129 && svd <= 192)) in svd_to_vic()
3672 /* CEA modes are numbered 1..127 */ in drm_display_mode_from_vic_index()
3712 bitmap_set(hdmi->y420_vdb_modes, vic, 1); in do_y420vdb_modes()
3738 bitmap_set(hdmi->y420_cmdb_modes, vic, 1); in drm_add_cmdb_modes()
3789 if (i < 64 && hdmi->y420_cmdb_map & (1ULL << i)) in do_cea_modes()
3880 return 1; in add_hdmi_mode()
3889 if (structure & (1 << 0)) { in add_3d_struct_modes()
3899 if (structure & (1 << 6)) { in add_3d_struct_modes()
3909 if (structure & (1 << 8)) { in add_3d_struct_modes()
3946 if (!(db[8] & (1 << 5))) in do_hdmi_vsdb_modes()
3950 if (db[8] & (1 << 7)) in do_hdmi_vsdb_modes()
3954 if (db[8] & (1 << 6)) in do_hdmi_vsdb_modes()
3964 if (db[8 + offset] & (1 << 7)) { in do_hdmi_vsdb_modes()
3981 offset += 1 + vic_len; in do_hdmi_vsdb_modes()
3983 if (multi_present == 1) in do_hdmi_vsdb_modes()
3990 if (len < (8 + offset + hdmi_3d_len - 1)) in do_hdmi_vsdb_modes()
3996 if (multi_present == 1 || multi_present == 2) { in do_hdmi_vsdb_modes()
4007 if (mask & (1 << i)) in do_hdmi_vsdb_modes()
4025 if (detail_present && (i + 1 == hdmi_3d_len - multi_len)) in do_hdmi_vsdb_modes()
4041 if ((db[9 + offset + i] >> 4) == 1) in do_hdmi_vsdb_modes()
4078 return db[1]; in cea_db_extended_tag()
4097 return cea[1]; in cea_revision()
4105 * 1) Byte 2 of the header specifies length differently, in cea_db_offsets()
4152 hdmi_id = db[1] | (db[2] << 8) | (db[3] << 16); in cea_db_is_hdmi_vsdb()
4167 oui = db[3] << 16 | db[2] << 8 | db[1]; in cea_db_is_hdmi_forum_vsdb()
4215 …(end) && (i) + cea_db_payload_len(&(cea)[(i)]) < (end); (i) += cea_db_payload_len(&(cea)[(i)]) + 1)
4222 u8 map_len = cea_db_payload_len(db) - 1; in drm_parse_y420cmdb_bitmap()
4276 video = db + 1; in add_cea_modes()
4288 dbl - 1); in add_cea_modes()
4352 if (db[1] != HDR_STATIC_METADATA_BLOCK) in cea_db_is_hdmi_hdr_metadata_block()
4401 if (len >= 6 && (db[6] & (1 << 7))) in drm_parse_hdmi_vsdb_audio()
4405 connector->latency_present[1] = (db[8] >> 6) & 1; in drm_parse_hdmi_vsdb_audio()
4412 connector->video_latency[1] = db[11]; in drm_parse_hdmi_vsdb_audio()
4414 connector->audio_latency[1] = db[12]; in drm_parse_hdmi_vsdb_audio()
4420 connector->latency_present[1], in drm_parse_hdmi_vsdb_audio()
4422 connector->video_latency[1], in drm_parse_hdmi_vsdb_audio()
4424 connector->audio_latency[1]); in drm_parse_hdmi_vsdb_audio()
4470 name_length = min(get_monitor_name(edid, buf), bufsize - 1); in drm_edid_get_monitor_name()
4481 connector->latency_present[1] = false; in clear_eld()
4484 connector->video_latency[1] = 0; in clear_eld()
4485 connector->audio_latency[1] = 0; in clear_eld()
4519 eld[DRM_ELD_CEA_EDID_VER_MNL] = cea[1] << DRM_ELD_CEA_EDID_VER_SHIFT; in drm_edid_to_eld()
4525 eld[DRM_ELD_MANUFACTURER_NAME1] = edid->mfg_id[1]; in drm_edid_to_eld()
4527 eld[DRM_ELD_PRODUCT_CODE1] = edid->prod_code[1]; in drm_edid_to_eld()
4546 if (sad_count >= 1) in drm_edid_to_eld()
4548 &db[1], sad_count * 3); in drm_edid_to_eld()
4553 if (dbl >= 1) in drm_edid_to_eld()
4554 eld[DRM_ELD_SPEAKER] = db[1]; in drm_edid_to_eld()
4627 u8 *sad = &db[1 + j * 3]; in drm_edid_to_sad()
4631 (*sads)[j].freq = sad[1] & 0x7F; in drm_edid_to_sad()
4684 *sadb = kmemdup(&db[1], dbl, GFP_KERNEL); in drm_edid_to_speaker_allocation()
4713 if (!connector->latency_present[1]) in drm_av_sync_delay()
4730 a = min(2 * (a - 1), 500); in drm_av_sync_delay()
4732 v = min(2 * (v - 1), 500); in drm_av_sync_delay()
4811 for (j = 1; j < cea_db_payload_len(&edid_ext[i]) + 1; j += 3) in drm_detect_monitor_audio()
4835 /* All CEA modes other than VIC 1 use limited quantization range. */ in drm_default_rgb_quant_range()
4836 return drm_match_cea_mode(mode) > 1 ? in drm_default_rgb_quant_range()
4984 info->dvi_dual = db[6] & 1; in drm_parse_hdmi_vsdb_video()
5007 info->cea_rev = edid_ext[1]; in drm_parse_cea_ext()
5047 * Check for flag range limits only. If flag == 1 then in get_monitor_range()
5065 if (!version_greater(edid, 1, 1)) in drm_get_monitor_range()
5071 DRM_DEBUG_KMS("Supported Monitor Refresh rate range is %d Hz - %d Hz\n", in drm_get_monitor_range()
5127 * Digital sink with "DFP 1.x compliant TMDS" according to EDID 1.3? in drm_add_display_info()
5191 /* +1 for DispID checksum */ in validate_displayid()
5192 dispid_length = sizeof(*base) + base->bytes + 1; in validate_displayid()
5211 (timings->pixel_clock[1] << 8) | in drm_mode_displayid_detailed()
5212 (timings->pixel_clock[2] << 16)) + 1; in drm_mode_displayid_detailed()
5213 unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1; in drm_mode_displayid_detailed()
5214 unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1; in drm_mode_displayid_detailed()
5215 unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1; in drm_mode_displayid_detailed()
5216 unsigned hsync_width = (timings->hsw[0] | timings->hsw[1] << 8) + 1; in drm_mode_displayid_detailed()
5217 unsigned vactive = (timings->vactive[0] | timings->vactive[1] << 8) + 1; in drm_mode_displayid_detailed()
5218 unsigned vblank = (timings->vblank[0] | timings->vblank[1] << 8) + 1; in drm_mode_displayid_detailed()
5219 unsigned vsync = (timings->vsync[0] | (timings->vsync[1] & 0x7f) << 8) + 1; in drm_mode_displayid_detailed()
5220 unsigned vsync_width = (timings->vsw[0] | timings->vsw[1] << 8) + 1; in drm_mode_displayid_detailed()
5221 bool hsync_positive = (timings->hsync[1] >> 7) & 0x1; in drm_mode_displayid_detailed()
5222 bool vsync_positive = (timings->vsync[1] >> 7) & 0x1; in drm_mode_displayid_detailed()
5573 * HDMI 1.4 VIC range: 1 <= VIC <= 64 (CEA-861-D) but in drm_mode_cea_vic()
5574 * HDMI 2.0 VIC range: 1 <= VIC <= 107 (CEA-861-F). So we in drm_mode_cea_vic()
5606 frame->pixel_repeat = 1; in drm_hdmi_avi_infoframe_from_display_mode()
5672 #define HDMI_COLORIMETRY_SMPTE_170M_YCC (C(1) | EC(0) | ACE(0))
5675 #define HDMI_COLORIMETRY_XVYCC_709 (C(3) | EC(1) | ACE(0))
5683 #define HDMI_COLORIMETRY_DCI_P3_RGB_THEATER (C(3) | EC(7) | ACE(1))
5768 * set YQ=1) and the Sink shall ignore the YQ-field." in drm_hdmi_avi_infoframe_quant_range()
5891 w = tile->tile_size[0] | tile->tile_size[1] << 8; in drm_parse_tiled_block()
5896 tile_v_loc = (tile->topo[1] & 0xf) | ((tile->topo[2] & 0x3) << 4); in drm_parse_tiled_block()
5897 tile_h_loc = (tile->topo[1] >> 4) | (((tile->topo[2] >> 2) & 0x3) << 4); in drm_parse_tiled_block()
5903 connector->num_h_tile = num_h_tile + 1; in drm_parse_tiled_block()
5904 connector->num_v_tile = num_v_tile + 1; in drm_parse_tiled_block()
5907 connector->tile_h_size = w + 1; in drm_parse_tiled_block()
5908 connector->tile_v_size = h + 1; in drm_parse_tiled_block()
5911 DRM_DEBUG_KMS("tile_size %d x %d\n", w + 1, h + 1); in drm_parse_tiled_block()
5913 num_h_tile + 1, num_v_tile + 1, tile_h_loc, tile_v_loc); in drm_parse_tiled_block()
5914 DRM_DEBUG_KMS("vend %c%c%c\n", tile->topology_id[0], tile->topology_id[1], tile->topology_id[2]); in drm_parse_tiled_block()