• Home
  • Raw
  • Download

Lines Matching +full:0 +full:x720

60 #define EDID_QUIRK_PREFER_LARGE_60		(1 << 0)
96 #define LEVEL_DMT 0
109 { "API", 0x7602, EDID_QUIRK_PREFER_LARGE_60 },
113 /* AEO model 0 reports 8 bpc, but is a 6 bpc panel */
114 { "AEO", 0, EDID_QUIRK_FORCE_6BPC },
117 { "BOE", 0x78b, EDID_QUIRK_FORCE_6BPC },
120 { "CPT", 0x17df, EDID_QUIRK_FORCE_6BPC },
123 { "SDC", 0x3652, EDID_QUIRK_FORCE_6BPC },
125 /* BOE model 0x0771 reports 8 bpc, but is a 6 bpc panel */
126 { "BOE", 0x0771, EDID_QUIRK_FORCE_6BPC },
130 { "MAX", 0x77e, EDID_QUIRK_PREFER_LARGE_60 },
145 { "LPL", 0, EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE },
146 { "LPL", 0x2a00, EDID_QUIRK_DETAILED_USE_MAXIMUM_SIZE },
161 { "SNY", 0x2541, EDID_QUIRK_FORCE_12BPC },
167 { "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 },
173 { "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC },
179 { "VLV", 0x91a8, EDID_QUIRK_NON_DESKTOP },
180 { "VLV", 0x91b0, EDID_QUIRK_NON_DESKTOP },
181 { "VLV", 0x91b1, EDID_QUIRK_NON_DESKTOP },
182 { "VLV", 0x91b2, EDID_QUIRK_NON_DESKTOP },
183 { "VLV", 0x91b3, EDID_QUIRK_NON_DESKTOP },
184 { "VLV", 0x91b4, EDID_QUIRK_NON_DESKTOP },
185 { "VLV", 0x91b5, EDID_QUIRK_NON_DESKTOP },
186 { "VLV", 0x91b6, EDID_QUIRK_NON_DESKTOP },
187 { "VLV", 0x91b7, EDID_QUIRK_NON_DESKTOP },
188 { "VLV", 0x91b8, EDID_QUIRK_NON_DESKTOP },
189 { "VLV", 0x91b9, EDID_QUIRK_NON_DESKTOP },
190 { "VLV", 0x91ba, EDID_QUIRK_NON_DESKTOP },
191 { "VLV", 0x91bb, EDID_QUIRK_NON_DESKTOP },
192 { "VLV", 0x91bc, EDID_QUIRK_NON_DESKTOP },
193 { "VLV", 0x91bd, EDID_QUIRK_NON_DESKTOP },
194 { "VLV", 0x91be, EDID_QUIRK_NON_DESKTOP },
195 { "VLV", 0x91bf, EDID_QUIRK_NON_DESKTOP },
198 { "HVR", 0xaa01, EDID_QUIRK_NON_DESKTOP },
199 { "HVR", 0xaa02, EDID_QUIRK_NON_DESKTOP },
202 { "OVR", 0x0001, EDID_QUIRK_NON_DESKTOP },
203 { "OVR", 0x0003, EDID_QUIRK_NON_DESKTOP },
204 { "OVR", 0x0004, EDID_QUIRK_NON_DESKTOP },
205 { "OVR", 0x0012, EDID_QUIRK_NON_DESKTOP },
208 { "ACR", 0x7fce, EDID_QUIRK_NON_DESKTOP },
209 { "HPN", 0x3515, EDID_QUIRK_NON_DESKTOP },
210 { "LEN", 0x0408, EDID_QUIRK_NON_DESKTOP },
211 { "LEN", 0xb800, EDID_QUIRK_NON_DESKTOP },
212 { "FUJ", 0x1970, EDID_QUIRK_NON_DESKTOP },
213 { "DEL", 0x7fce, EDID_QUIRK_NON_DESKTOP },
214 { "SEC", 0x144a, EDID_QUIRK_NON_DESKTOP },
215 { "AUS", 0xc102, EDID_QUIRK_NON_DESKTOP },
218 { "SNY", 0x0704, EDID_QUIRK_NON_DESKTOP },
221 { "SEN", 0x1019, EDID_QUIRK_NON_DESKTOP },
224 { "SVR", 0x1019, EDID_QUIRK_NON_DESKTOP },
232 /* 0x01 - 640x350@85Hz */
234 736, 832, 0, 350, 382, 385, 445, 0,
236 /* 0x02 - 640x400@85Hz */
238 736, 832, 0, 400, 401, 404, 445, 0,
240 /* 0x03 - 720x400@85Hz */
242 828, 936, 0, 400, 401, 404, 446, 0,
244 /* 0x04 - 640x480@60Hz */
246 752, 800, 0, 480, 490, 492, 525, 0,
248 /* 0x05 - 640x480@72Hz */
250 704, 832, 0, 480, 489, 492, 520, 0,
252 /* 0x06 - 640x480@75Hz */
254 720, 840, 0, 480, 481, 484, 500, 0,
256 /* 0x07 - 640x480@85Hz */
258 752, 832, 0, 480, 481, 484, 509, 0,
260 /* 0x08 - 800x600@56Hz */
262 896, 1024, 0, 600, 601, 603, 625, 0,
264 /* 0x09 - 800x600@60Hz */
266 968, 1056, 0, 600, 601, 605, 628, 0,
268 /* 0x0a - 800x600@72Hz */
270 976, 1040, 0, 600, 637, 643, 666, 0,
272 /* 0x0b - 800x600@75Hz */
274 896, 1056, 0, 600, 601, 604, 625, 0,
276 /* 0x0c - 800x600@85Hz */
278 896, 1048, 0, 600, 601, 604, 631, 0,
280 /* 0x0d - 800x600@120Hz RB */
282 880, 960, 0, 600, 603, 607, 636, 0,
284 /* 0x0e - 848x480@60Hz */
286 976, 1088, 0, 480, 486, 494, 517, 0,
288 /* 0x0f - 1024x768@43Hz, interlace */
290 1208, 1264, 0, 768, 768, 776, 817, 0,
293 /* 0x10 - 1024x768@60Hz */
295 1184, 1344, 0, 768, 771, 777, 806, 0,
297 /* 0x11 - 1024x768@70Hz */
299 1184, 1328, 0, 768, 771, 777, 806, 0,
301 /* 0x12 - 1024x768@75Hz */
303 1136, 1312, 0, 768, 769, 772, 800, 0,
305 /* 0x13 - 1024x768@85Hz */
307 1168, 1376, 0, 768, 769, 772, 808, 0,
309 /* 0x14 - 1024x768@120Hz RB */
311 1104, 1184, 0, 768, 771, 775, 813, 0,
313 /* 0x15 - 1152x864@75Hz */
315 1344, 1600, 0, 864, 865, 868, 900, 0,
317 /* 0x55 - 1280x720@60Hz */
318 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
319 1430, 1650, 0, 720, 725, 730, 750, 0,
321 /* 0x16 - 1280x768@60Hz RB */
323 1360, 1440, 0, 768, 771, 778, 790, 0,
325 /* 0x17 - 1280x768@60Hz */
327 1472, 1664, 0, 768, 771, 778, 798, 0,
329 /* 0x18 - 1280x768@75Hz */
331 1488, 1696, 0, 768, 771, 778, 805, 0,
333 /* 0x19 - 1280x768@85Hz */
335 1496, 1712, 0, 768, 771, 778, 809, 0,
337 /* 0x1a - 1280x768@120Hz RB */
339 1360, 1440, 0, 768, 771, 778, 813, 0,
341 /* 0x1b - 1280x800@60Hz RB */
343 1360, 1440, 0, 800, 803, 809, 823, 0,
345 /* 0x1c - 1280x800@60Hz */
347 1480, 1680, 0, 800, 803, 809, 831, 0,
349 /* 0x1d - 1280x800@75Hz */
351 1488, 1696, 0, 800, 803, 809, 838, 0,
353 /* 0x1e - 1280x800@85Hz */
355 1496, 1712, 0, 800, 803, 809, 843, 0,
357 /* 0x1f - 1280x800@120Hz RB */
359 1360, 1440, 0, 800, 803, 809, 847, 0,
361 /* 0x20 - 1280x960@60Hz */
363 1488, 1800, 0, 960, 961, 964, 1000, 0,
365 /* 0x21 - 1280x960@85Hz */
367 1504, 1728, 0, 960, 961, 964, 1011, 0,
369 /* 0x22 - 1280x960@120Hz RB */
371 1360, 1440, 0, 960, 963, 967, 1017, 0,
373 /* 0x23 - 1280x1024@60Hz */
375 1440, 1688, 0, 1024, 1025, 1028, 1066, 0,
377 /* 0x24 - 1280x1024@75Hz */
379 1440, 1688, 0, 1024, 1025, 1028, 1066, 0,
381 /* 0x25 - 1280x1024@85Hz */
383 1504, 1728, 0, 1024, 1025, 1028, 1072, 0,
385 /* 0x26 - 1280x1024@120Hz RB */
387 1360, 1440, 0, 1024, 1027, 1034, 1084, 0,
389 /* 0x27 - 1360x768@60Hz */
391 1536, 1792, 0, 768, 771, 777, 795, 0,
393 /* 0x28 - 1360x768@120Hz RB */
395 1440, 1520, 0, 768, 771, 776, 813, 0,
397 /* 0x51 - 1366x768@60Hz */
399 1579, 1792, 0, 768, 771, 774, 798, 0,
401 /* 0x56 - 1366x768@60Hz */
403 1436, 1500, 0, 768, 769, 772, 800, 0,
405 /* 0x29 - 1400x1050@60Hz RB */
407 1480, 1560, 0, 1050, 1053, 1057, 1080, 0,
409 /* 0x2a - 1400x1050@60Hz */
411 1632, 1864, 0, 1050, 1053, 1057, 1089, 0,
413 /* 0x2b - 1400x1050@75Hz */
415 1648, 1896, 0, 1050, 1053, 1057, 1099, 0,
417 /* 0x2c - 1400x1050@85Hz */
419 1656, 1912, 0, 1050, 1053, 1057, 1105, 0,
421 /* 0x2d - 1400x1050@120Hz RB */
423 1480, 1560, 0, 1050, 1053, 1057, 1112, 0,
425 /* 0x2e - 1440x900@60Hz RB */
427 1520, 1600, 0, 900, 903, 909, 926, 0,
429 /* 0x2f - 1440x900@60Hz */
431 1672, 1904, 0, 900, 903, 909, 934, 0,
433 /* 0x30 - 1440x900@75Hz */
435 1688, 1936, 0, 900, 903, 909, 942, 0,
437 /* 0x31 - 1440x900@85Hz */
439 1696, 1952, 0, 900, 903, 909, 948, 0,
441 /* 0x32 - 1440x900@120Hz RB */
443 1520, 1600, 0, 900, 903, 909, 953, 0,
445 /* 0x53 - 1600x900@60Hz */
447 1704, 1800, 0, 900, 901, 904, 1000, 0,
449 /* 0x33 - 1600x1200@60Hz */
451 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
453 /* 0x34 - 1600x1200@65Hz */
455 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
457 /* 0x35 - 1600x1200@70Hz */
459 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
461 /* 0x36 - 1600x1200@75Hz */
463 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
465 /* 0x37 - 1600x1200@85Hz */
467 1856, 2160, 0, 1200, 1201, 1204, 1250, 0,
469 /* 0x38 - 1600x1200@120Hz RB */
471 1680, 1760, 0, 1200, 1203, 1207, 1271, 0,
473 /* 0x39 - 1680x1050@60Hz RB */
475 1760, 1840, 0, 1050, 1053, 1059, 1080, 0,
477 /* 0x3a - 1680x1050@60Hz */
479 1960, 2240, 0, 1050, 1053, 1059, 1089, 0,
481 /* 0x3b - 1680x1050@75Hz */
483 1976, 2272, 0, 1050, 1053, 1059, 1099, 0,
485 /* 0x3c - 1680x1050@85Hz */
487 1984, 2288, 0, 1050, 1053, 1059, 1105, 0,
489 /* 0x3d - 1680x1050@120Hz RB */
491 1760, 1840, 0, 1050, 1053, 1059, 1112, 0,
493 /* 0x3e - 1792x1344@60Hz */
495 2120, 2448, 0, 1344, 1345, 1348, 1394, 0,
497 /* 0x3f - 1792x1344@75Hz */
499 2104, 2456, 0, 1344, 1345, 1348, 1417, 0,
501 /* 0x40 - 1792x1344@120Hz RB */
503 1872, 1952, 0, 1344, 1347, 1351, 1423, 0,
505 /* 0x41 - 1856x1392@60Hz */
507 2176, 2528, 0, 1392, 1393, 1396, 1439, 0,
509 /* 0x42 - 1856x1392@75Hz */
511 2208, 2560, 0, 1392, 1393, 1396, 1500, 0,
513 /* 0x43 - 1856x1392@120Hz RB */
515 1936, 2016, 0, 1392, 1395, 1399, 1474, 0,
517 /* 0x52 - 1920x1080@60Hz */
519 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
521 /* 0x44 - 1920x1200@60Hz RB */
523 2000, 2080, 0, 1200, 1203, 1209, 1235, 0,
525 /* 0x45 - 1920x1200@60Hz */
527 2256, 2592, 0, 1200, 1203, 1209, 1245, 0,
529 /* 0x46 - 1920x1200@75Hz */
531 2264, 2608, 0, 1200, 1203, 1209, 1255, 0,
533 /* 0x47 - 1920x1200@85Hz */
535 2272, 2624, 0, 1200, 1203, 1209, 1262, 0,
537 /* 0x48 - 1920x1200@120Hz RB */
539 2000, 2080, 0, 1200, 1203, 1209, 1271, 0,
541 /* 0x49 - 1920x1440@60Hz */
543 2256, 2600, 0, 1440, 1441, 1444, 1500, 0,
545 /* 0x4a - 1920x1440@75Hz */
547 2288, 2640, 0, 1440, 1441, 1444, 1500, 0,
549 /* 0x4b - 1920x1440@120Hz RB */
551 2000, 2080, 0, 1440, 1443, 1447, 1525, 0,
553 /* 0x54 - 2048x1152@60Hz */
555 2154, 2250, 0, 1152, 1153, 1156, 1200, 0,
557 /* 0x4c - 2560x1600@60Hz RB */
559 2640, 2720, 0, 1600, 1603, 1609, 1646, 0,
561 /* 0x4d - 2560x1600@60Hz */
563 3032, 3504, 0, 1600, 1603, 1609, 1658, 0,
565 /* 0x4e - 2560x1600@75Hz */
567 3048, 3536, 0, 1600, 1603, 1609, 1672, 0,
569 /* 0x4f - 2560x1600@85Hz */
571 3048, 3536, 0, 1600, 1603, 1609, 1682, 0,
573 /* 0x50 - 2560x1600@120Hz RB */
575 2640, 2720, 0, 1600, 1603, 1609, 1694, 0,
577 /* 0x57 - 4096x2160@60Hz RB */
579 4136, 4176, 0, 2160, 2208, 2216, 2222, 0,
581 /* 0x58 - 4096x2160@59.94Hz RB */
583 4136, 4176, 0, 2160, 2208, 2216, 2222, 0,
598 968, 1056, 0, 600, 601, 605, 628, 0,
601 896, 1024, 0, 600, 601, 603, 625, 0,
604 720, 840, 0, 480, 481, 484, 500, 0,
607 704, 832, 0, 480, 489, 492, 520, 0,
610 768, 864, 0, 480, 483, 486, 525, 0,
613 752, 800, 0, 480, 490, 492, 525, 0,
616 846, 900, 0, 400, 421, 423, 449, 0,
619 846, 900, 0, 400, 412, 414, 449, 0,
622 1440, 1688, 0, 1024, 1025, 1028, 1066, 0,
625 1136, 1312, 0, 768, 769, 772, 800, 0,
628 1184, 1328, 0, 768, 771, 777, 806, 0,
631 1184, 1344, 0, 768, 771, 777, 806, 0,
634 1208, 1264, 0, 768, 768, 776, 817, 0,
637 928, 1152, 0, 624, 625, 628, 667, 0,
640 896, 1056, 0, 600, 601, 604, 625, 0,
643 976, 1040, 0, 600, 637, 643, 666, 0,
646 1344, 1600, 0, 864, 865, 868, 900, 0,
659 { 640, 350, 85, 0 },
660 { 640, 400, 85, 0 },
661 { 720, 400, 85, 0 },
662 { 640, 480, 85, 0 },
663 { 848, 480, 60, 0 },
664 { 800, 600, 85, 0 },
665 { 1024, 768, 85, 0 },
666 { 1152, 864, 75, 0 },
669 { 1280, 768, 60, 0 },
670 { 1280, 768, 75, 0 },
671 { 1280, 768, 85, 0 },
672 { 1280, 960, 60, 0 },
673 { 1280, 960, 85, 0 },
674 { 1280, 1024, 60, 0 },
675 { 1280, 1024, 85, 0 },
677 { 1360, 768, 60, 0 },
679 { 1440, 900, 60, 0 },
680 { 1440, 900, 75, 0 },
681 { 1440, 900, 85, 0 },
683 { 1400, 1050, 60, 0 },
684 { 1400, 1050, 75, 0 },
686 { 1400, 1050, 85, 0 },
688 { 1680, 1050, 60, 0 },
689 { 1680, 1050, 75, 0 },
690 { 1680, 1050, 85, 0 },
691 { 1600, 1200, 60, 0 },
692 { 1600, 1200, 65, 0 },
693 { 1600, 1200, 70, 0 },
695 { 1600, 1200, 75, 0 },
696 { 1600, 1200, 85, 0 },
697 { 1792, 1344, 60, 0 },
698 { 1792, 1344, 75, 0 },
699 { 1856, 1392, 60, 0 },
700 { 1856, 1392, 75, 0 },
702 { 1920, 1200, 60, 0 },
704 { 1920, 1200, 75, 0 },
705 { 1920, 1200, 85, 0 },
706 { 1920, 1440, 60, 0 },
707 { 1920, 1440, 75, 0 },
711 { 1024, 576, 60, 0 },
712 { 1366, 768, 60, 0 },
713 { 1600, 900, 60, 0 },
714 { 1680, 945, 60, 0 },
715 { 1920, 1080, 60, 0 },
716 { 2048, 1152, 60, 0 },
717 { 2048, 1536, 60, 0 },
727 /* 0 - dummy, VICs start at 1 */
731 752, 800, 0, 480, 490, 492, 525, 0,
736 798, 858, 0, 480, 489, 495, 525, 0,
741 798, 858, 0, 480, 489, 495, 525, 0,
744 /* 4 - 1280x720@60Hz 16:9 */
745 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
746 1430, 1650, 0, 720, 725, 730, 750, 0,
751 2052, 2200, 0, 1080, 1084, 1094, 1125, 0,
757 801, 858, 0, 480, 488, 494, 525, 0,
763 801, 858, 0, 480, 488, 494, 525, 0,
769 801, 858, 0, 240, 244, 247, 262, 0,
775 801, 858, 0, 240, 244, 247, 262, 0,
781 3204, 3432, 0, 480, 488, 494, 525, 0,
787 3204, 3432, 0, 480, 488, 494, 525, 0,
793 3204, 3432, 0, 240, 244, 247, 262, 0,
798 3204, 3432, 0, 240, 244, 247, 262, 0,
803 1596, 1716, 0, 480, 489, 495, 525, 0,
808 1596, 1716, 0, 480, 489, 495, 525, 0,
813 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
818 796, 864, 0, 576, 581, 586, 625, 0,
823 796, 864, 0, 576, 581, 586, 625, 0,
826 /* 19 - 1280x720@50Hz 16:9 */
827 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720,
828 1760, 1980, 0, 720, 725, 730, 750, 0,
833 2492, 2640, 0, 1080, 1084, 1094, 1125, 0,
839 795, 864, 0, 576, 580, 586, 625, 0,
845 795, 864, 0, 576, 580, 586, 625, 0,
851 795, 864, 0, 288, 290, 293, 312, 0,
857 795, 864, 0, 288, 290, 293, 312, 0,
863 3180, 3456, 0, 576, 580, 586, 625, 0,
869 3180, 3456, 0, 576, 580, 586, 625, 0,
875 3180, 3456, 0, 288, 290, 293, 312, 0,
880 3180, 3456, 0, 288, 290, 293, 312, 0,
885 1592, 1728, 0, 576, 581, 586, 625, 0,
890 1592, 1728, 0, 576, 581, 586, 625, 0,
895 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
900 2602, 2750, 0, 1080, 1084, 1089, 1125, 0,
905 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
910 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
915 3192, 3432, 0, 480, 489, 495, 525, 0,
920 3192, 3432, 0, 480, 489, 495, 525, 0,
925 3184, 3456, 0, 576, 581, 586, 625, 0,
930 3184, 3456, 0, 576, 581, 586, 625, 0,
935 2120, 2304, 0, 1080, 1126, 1136, 1250, 0,
941 2492, 2640, 0, 1080, 1084, 1094, 1125, 0,
945 /* 41 - 1280x720@100Hz 16:9 */
946 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1720,
947 1760, 1980, 0, 720, 725, 730, 750, 0,
952 796, 864, 0, 576, 581, 586, 625, 0,
957 796, 864, 0, 576, 581, 586, 625, 0,
962 795, 864, 0, 576, 580, 586, 625, 0,
968 795, 864, 0, 576, 580, 586, 625, 0,
974 2052, 2200, 0, 1080, 1084, 1094, 1125, 0,
978 /* 47 - 1280x720@120Hz 16:9 */
979 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1390,
980 1430, 1650, 0, 720, 725, 730, 750, 0,
985 798, 858, 0, 480, 489, 495, 525, 0,
990 798, 858, 0, 480, 489, 495, 525, 0,
995 801, 858, 0, 480, 488, 494, 525, 0,
1001 801, 858, 0, 480, 488, 494, 525, 0,
1007 796, 864, 0, 576, 581, 586, 625, 0,
1012 796, 864, 0, 576, 581, 586, 625, 0,
1017 795, 864, 0, 576, 580, 586, 625, 0,
1023 795, 864, 0, 576, 580, 586, 625, 0,
1029 798, 858, 0, 480, 489, 495, 525, 0,
1034 798, 858, 0, 480, 489, 495, 525, 0,
1039 801, 858, 0, 480, 488, 494, 525, 0,
1045 801, 858, 0, 480, 488, 494, 525, 0,
1049 /* 60 - 1280x720@24Hz 16:9 */
1050 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 59400, 1280, 3040,
1051 3080, 3300, 0, 720, 725, 730, 750, 0,
1054 /* 61 - 1280x720@25Hz 16:9 */
1055 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3700,
1056 3740, 3960, 0, 720, 725, 730, 750, 0,
1059 /* 62 - 1280x720@30Hz 16:9 */
1060 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3040,
1061 3080, 3300, 0, 720, 725, 730, 750, 0,
1066 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
1071 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
1074 /* 65 - 1280x720@24Hz 64:27 */
1075 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 59400, 1280, 3040,
1076 3080, 3300, 0, 720, 725, 730, 750, 0,
1079 /* 66 - 1280x720@25Hz 64:27 */
1080 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3700,
1081 3740, 3960, 0, 720, 725, 730, 750, 0,
1084 /* 67 - 1280x720@30Hz 64:27 */
1085 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 3040,
1086 3080, 3300, 0, 720, 725, 730, 750, 0,
1089 /* 68 - 1280x720@50Hz 64:27 */
1090 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1720,
1091 1760, 1980, 0, 720, 725, 730, 750, 0,
1094 /* 69 - 1280x720@60Hz 64:27 */
1095 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
1096 1430, 1650, 0, 720, 725, 730, 750, 0,
1099 /* 70 - 1280x720@100Hz 64:27 */
1100 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1720,
1101 1760, 1980, 0, 720, 725, 730, 750, 0,
1104 /* 71 - 1280x720@120Hz 64:27 */
1105 { DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 148500, 1280, 1390,
1106 1430, 1650, 0, 720, 725, 730, 750, 0,
1111 2602, 2750, 0, 1080, 1084, 1089, 1125, 0,
1116 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
1121 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
1126 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
1131 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
1136 2492, 2640, 0, 1080, 1084, 1089, 1125, 0,
1141 2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
1144 /* 79 - 1680x720@24Hz 64:27 */
1145 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 3040,
1146 3080, 3300, 0, 720, 725, 730, 750, 0,
1149 /* 80 - 1680x720@25Hz 64:27 */
1150 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 2908,
1151 2948, 3168, 0, 720, 725, 730, 750, 0,
1154 /* 81 - 1680x720@30Hz 64:27 */
1155 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 59400, 1680, 2380,
1156 2420, 2640, 0, 720, 725, 730, 750, 0,
1159 /* 82 - 1680x720@50Hz 64:27 */
1160 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 82500, 1680, 1940,
1161 1980, 2200, 0, 720, 725, 730, 750, 0,
1164 /* 83 - 1680x720@60Hz 64:27 */
1165 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 99000, 1680, 1940,
1166 1980, 2200, 0, 720, 725, 730, 750, 0,
1169 /* 84 - 1680x720@100Hz 64:27 */
1170 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 165000, 1680, 1740,
1171 1780, 2000, 0, 720, 725, 730, 825, 0,
1174 /* 85 - 1680x720@120Hz 64:27 */
1175 { DRM_MODE("1680x720", DRM_MODE_TYPE_DRIVER, 198000, 1680, 1740,
1176 1780, 2000, 0, 720, 725, 730, 825, 0,
1181 3602, 3750, 0, 1080, 1084, 1089, 1100, 0,
1186 3052, 3200, 0, 1080, 1084, 1089, 1125, 0,
1191 3372, 3520, 0, 1080, 1084, 1089, 1125, 0,
1196 3152, 3300, 0, 1080, 1084, 1089, 1125, 0,
1201 2852, 3000, 0, 1080, 1084, 1089, 1100, 0,
1206 2822, 2970, 0, 1080, 1084, 1089, 1250, 0,
1211 3152, 3300, 0, 1080, 1084, 1089, 1250, 0,
1216 5204, 5500, 0, 2160, 2168, 2178, 2250, 0,
1221 4984, 5280, 0, 2160, 2168, 2178, 2250, 0,
1226 4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
1231 4984, 5280, 0, 2160, 2168, 2178, 2250, 0,
1236 4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
1241 5204, 5500, 0, 2160, 2168, 2178, 2250, 0,
1246 5152, 5280, 0, 2160, 2168, 2178, 2250, 0,
1251 4272, 4400, 0, 2160, 2168, 2178, 2250, 0,
1256 5152, 5280, 0, 2160, 2168, 2178, 2250, 0,
1261 4272, 4400, 0, 2160, 2168, 2178, 2250, 0,
1266 5204, 5500, 0, 2160, 2168, 2178, 2250, 0,
1271 4984, 5280, 0, 2160, 2168, 2178, 2250, 0,
1276 4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
1281 4984, 5280, 0, 2160, 2168, 2178, 2250, 0,
1286 4104, 4400, 0, 2160, 2168, 2178, 2250, 0,
1295 /* 0 - dummy, VICs start at 1 */
1299 3840, 4016, 4104, 4400, 0,
1300 2160, 2168, 2178, 2250, 0,
1305 3840, 4896, 4984, 5280, 0,
1306 2160, 2168, 2178, 2250, 0,
1311 3840, 5116, 5204, 5500, 0,
1312 2160, 2168, 2178, 2250, 0,
1317 4096, 5116, 5204, 5500, 0,
1318 2160, 2168, 2178, 2250, 0,
1326 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1335 * Return: 8 if the header is perfect, down to 0 if it's totally wrong.
1339 int i, score = 0; in drm_edid_header_is_valid()
1341 for (i = 0; i < sizeof(edid_header); i++) in drm_edid_header_is_valid()
1352 "Minimum number of valid EDID header bytes (0-8, default 6)");
1361 u8 csum = 0; in drm_edid_block_checksum()
1362 for (i = 0; i < EDID_LENGTH; i++) in drm_edid_block_checksum()
1370 if (memchr_inv(in_edid, 0, length)) in drm_edid_is_zero()
1379 * @block: type of block to validate (0 for base, extension otherwise)
1397 if (edid_fixup > 8 || edid_fixup < 0) in drm_edid_block_valid()
1400 if (block == 0) { in drm_edid_block_valid()
1428 if (raw_edid[0] == CEA_EXT) { in drm_edid_block_valid()
1440 switch (raw_edid[0]) { in drm_edid_block_valid()
1441 case 0: /* base */ in drm_edid_block_valid()
1488 for (i = 0; i <= edid->extensions; i++) in drm_edid_is_valid()
1496 #define DDC_SEGMENT_ADDR 0x30
1506 * Return: 0 on success or -1 on failure.
1528 .flags = 0, in drm_do_probe_ddc_edid()
1533 .flags = 0, in drm_do_probe_ddc_edid()
1557 return ret == xfers ? 0 : -1; in drm_do_probe_ddc_edid()
1571 for (i = 0; i < num_blocks; i++) { in connector_bad_edid()
1611 * Return: The number of modes added or 0 if we couldn't find any.
1616 int num_modes = 0; in drm_add_override_edid_modes()
1657 int i, j = 0, valid_extensions = 0; in drm_do_get_edid()
1669 for (i = 0; i < 4; i++) { in drm_do_get_edid()
1670 if (get_edid_block(data, edid, 0, EDID_LENGTH)) in drm_do_get_edid()
1672 if (drm_edid_block_valid(edid, 0, false, in drm_do_get_edid()
1675 if (i == 0 && drm_edid_is_zero(edid, EDID_LENGTH)) { in drm_do_get_edid()
1684 valid_extensions = edid[0x7e]; in drm_do_get_edid()
1685 if (valid_extensions == 0) in drm_do_get_edid()
1693 for (j = 1; j <= edid[0x7e]; j++) { in drm_do_get_edid()
1696 for (i = 0; i < 4; i++) { in drm_do_get_edid()
1707 if (valid_extensions != edid[0x7e]) { in drm_do_get_edid()
1710 connector_bad_edid(connector, edid, edid[0x7e] + 1); in drm_do_get_edid()
1712 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; in drm_do_get_edid()
1713 edid[0x7e] = valid_extensions; in drm_do_get_edid()
1721 for (i = 0; i <= edid[0x7e]; i++) { in drm_do_get_edid()
1756 return (drm_do_probe_ddc_edid(adapter, &out, 0, 1) == 0); in drm_probe_ddc()
1838 edid_vendor[0] = ((edid->mfg_id[0] & 0x7c) >> 2) + '@'; in edid_vendor()
1839 edid_vendor[1] = (((edid->mfg_id[0] & 0x3) << 3) | in edid_vendor()
1840 ((edid->mfg_id[1] & 0xe0) >> 5)) + '@'; in edid_vendor()
1841 edid_vendor[2] = (edid->mfg_id[1] & 0x1f) + '@'; in edid_vendor()
1857 for (i = 0; i < ARRAY_SIZE(edid_quirk_list); i++) { in edid_get_quirks()
1865 return 0; in edid_get_quirks()
1883 int target_refresh = 0; in edid_fixup_preferred()
1949 for (i = 0; i < ARRAY_SIZE(drm_dmt_modes); i++) { in drm_mode_find_dmt()
1972 int i, n = 0; in cea_for_each_detailed_block()
1973 u8 d = ext[0x02]; in cea_for_each_detailed_block()
1977 for (i = 0; i < n; i++) in cea_for_each_detailed_block()
1984 unsigned int i, n = min((int)ext[0x02], 6); in vtb_for_each_detailed_block()
1987 if (ext[0x01] != 1) in vtb_for_each_detailed_block()
1990 for (i = 0; i < n; i++) in vtb_for_each_detailed_block()
2003 for (i = 0; i < EDID_DETAILED_TIMINGS; i++) in drm_for_each_detailed_block()
2006 for (i = 1; i <= raw_edid[0x7e]; i++) { in drm_for_each_detailed_block()
2026 if (r[15] & 0x10) in is_rb()
2040 return ((edid->input & DRM_EDID_INPUT_DIGITAL) != 0); in drm_monitor_supports_rb()
2047 if (r[3] == EDID_DETAIL_MONITOR_RANGE && r[10] == 0x02) in find_gtf2()
2057 return r ? (r[12] * 2) : 0; in drm_gtf2_hbreak()
2065 return r ? r[13] : 0; in drm_gtf2_2c()
2073 return r ? (r[15] << 8) + r[14] : 0; in drm_gtf2_m()
2081 return r ? r[16] : 0; in drm_gtf2_k()
2089 return r ? r[17] : 0; in drm_gtf2_2j()
2109 * 0 is reserved. The spec says 0x01 fill for unused timings. Some old
2110 * monitors fill with ascii space (0x20) instead.
2115 return (a == 0x00 && b == 0x00) || in bad_std_timing()
2116 (a == 0x01 && b == 0x01) || in bad_std_timing()
2117 (a == 0x20 && b == 0x20); in bad_std_timing()
2151 if (aspect_ratio == 0) { in drm_mode_std()
2184 mode = drm_cvt_mode(dev, 1366, 768, vrefresh_rate, 0, 0, in drm_mode_std()
2210 mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); in drm_mode_std()
2218 mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); in drm_mode_std()
2224 vrefresh_rate, 0, 0, in drm_mode_std()
2232 mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 0, 0, in drm_mode_std()
2267 for (i = 0; i < ARRAY_SIZE(cea_interlaced); i++) { in drm_mode_do_interlace_quirk()
2298 unsigned hactive = (pt->hactive_hblank_hi & 0xf0) << 4 | pt->hactive_lo; in drm_mode_detailed()
2299 unsigned vactive = (pt->vactive_vblank_hi & 0xf0) << 4 | pt->vactive_lo; in drm_mode_detailed()
2300 unsigned hblank = (pt->hactive_hblank_hi & 0xf) << 8 | pt->hblank_lo; in drm_mode_detailed()
2301 unsigned vblank = (pt->vactive_vblank_hi & 0xf) << 8 | pt->vblank_lo; in drm_mode_detailed()
2302 unsigned hsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc0) << 2 | pt->hsync_offset_lo; in drm_mode_detailed()
2303 …unsigned hsync_pulse_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x30) << 4 | pt->hsync_pulse… in drm_mode_detailed()
2304 …unsigned vsync_offset = (pt->hsync_vsync_offset_pulse_width_hi & 0xc) << 2 | pt->vsync_offset_puls… in drm_mode_detailed()
2305 …se_width = (pt->hsync_vsync_offset_pulse_width_hi & 0x3) << 4 | (pt->vsync_offset_pulse_width_lo &… in drm_mode_detailed()
2371 mode->width_mm = pt->width_mm_lo | (pt->width_height_mm_hi & 0xf0) << 4; in drm_mode_detailed()
2372 mode->height_mm = pt->height_mm_lo | (pt->width_height_mm_hi & 0xf) << 8; in drm_mode_detailed()
2399 hmin += ((t[4] & 0x04) ? 255 : 0); in mode_in_hsync_range()
2402 hmax += ((t[4] & 0x08) ? 255 : 0); in mode_in_hsync_range()
2416 vmin += ((t[4] & 0x01) ? 255 : 0); in mode_in_vsync_range()
2419 vmax += ((t[4] & 0x02) ? 255 : 0); in mode_in_vsync_range()
2429 if (t[9] == 0 || t[9] == 255) in range_pixel_clock()
2430 return 0; in range_pixel_clock()
2433 if (edid->revision >= 4 && t[10] == 0x04) in range_pixel_clock()
2458 if (edid->revision >= 4 && t[10] == 0x04) in mode_in_range()
2459 if (t[13] && mode->hdisplay > 8 * (t[13] + (256 * (t[12]&0x3)))) in mode_in_range()
2490 int i, modes = 0; in drm_dmt_modes_for_range()
2494 for (i = 0; i < ARRAY_SIZE(drm_dmt_modes); i++) { in drm_dmt_modes_for_range()
2525 int i, modes = 0; in drm_gtf_modes_for_range()
2529 for (i = 0; i < ARRAY_SIZE(extra_modes); i++) { in drm_gtf_modes_for_range()
2531 newmode = drm_gtf_mode(dev, m->w, m->h, m->r, 0, 0); in drm_gtf_modes_for_range()
2553 int i, modes = 0; in drm_cvt_modes_for_range()
2558 for (i = 0; i < ARRAY_SIZE(extra_modes); i++) { in drm_cvt_modes_for_range()
2560 newmode = drm_cvt_mode(dev, m->w, m->h, m->r, rb, 0, 0); in drm_cvt_modes_for_range()
2596 case 0x02: /* secondary gtf, XXX could do more */ in do_inferred_modes()
2597 case 0x00: /* default gtf */ in do_inferred_modes()
2602 case 0x04: /* cvt, only in 1.4+ */ in do_inferred_modes()
2610 case 0x01: /* just the ranges, no formula */ in do_inferred_modes()
2624 if (version_greater(edid, 1, 0)) in add_inferred_modes()
2634 int i, j, m, modes = 0; in drm_est3_modes()
2638 for (i = 0; i < 6; i++) { in drm_est3_modes()
2639 for (j = 7; j >= 0; j--) { in drm_est3_modes()
2684 ((edid->established_timings.mfg_rsvd & 0x80) << 9); in add_established_modes()
2685 int i, modes = 0; in add_established_modes()
2691 for (i = 0; i <= EDID_EST_TIMINGS; i++) { in add_established_modes()
2702 if (version_greater(edid, 1, 0)) in add_established_modes()
2719 for (i = 0; i < 6; i++) { in do_standard_modes()
2744 int i, modes = 0; in add_standard_modes()
2750 for (i = 0; i < EDID_STD_TIMINGS; i++) { in add_standard_modes()
2761 if (version_greater(edid, 1, 0)) in add_standard_modes()
2773 int i, j, modes = 0; in drm_cvt_modes()
2778 const u8 empty[3] = { 0, 0, 0 }; in drm_cvt_modes()
2780 for (i = 0; i < 4; i++) { in drm_cvt_modes()
2787 height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2; in drm_cvt_modes()
2788 switch (cvt->code[1] & 0x0c) { in drm_cvt_modes()
2789 case 0x00: in drm_cvt_modes()
2792 case 0x04: in drm_cvt_modes()
2795 case 0x08: in drm_cvt_modes()
2798 case 0x0c: in drm_cvt_modes()
2806 rates[j], j == 0, in drm_cvt_modes()
2902 #define AUDIO_BLOCK 0x01
2903 #define VIDEO_BLOCK 0x02
2904 #define VENDOR_BLOCK 0x03
2905 #define SPEAKER_BLOCK 0x04
2906 #define USE_EXTENDED_TAG 0x07
2907 #define EXT_VIDEO_CAPABILITY_BLOCK 0x00
2908 #define EXT_VIDEO_DATA_BLOCK_420 0x0E
2909 #define EXT_VIDEO_CAP_BLOCK_Y420CMDB 0x0F
2924 if (edid == NULL || edid->extensions == 0) in drm_find_edid_extension()
2928 for (i = 0; i < edid->extensions; i++) { in drm_find_edid_extension()
2930 if (edid_ext[0] == ext_id) in drm_find_edid_extension()
2989 if (cea_mode->vrefresh % 6 != 0) in cea_mode_alternate_clock()
3047 return 0; in drm_match_cea_mode_clock_tolerance()
3070 return 0; in drm_match_cea_mode_clock_tolerance()
3077 * Return: The CEA Video ID (VIC) of the mode or 0 if it isn't a CEA-861
3086 return 0; in drm_match_cea_mode()
3109 return 0; in drm_match_cea_mode()
3115 return vic > 0 && vic < ARRAY_SIZE(edid_cea_modes); in drm_valid_cea_vic()
3155 return 0; in drm_match_hdmi_mode_clock_tolerance()
3173 return 0; in drm_match_hdmi_mode_clock_tolerance()
3182 * Returns the HDMI Video ID (VIC) of the mode or 0 if it isn't one.
3190 return 0; in drm_match_hdmi_mode()
3205 return 0; in drm_match_hdmi_mode()
3210 return vic > 0 && vic < ARRAY_SIZE(edid_4k_modes); in drm_valid_hdmi_vic()
3219 int modes = 0; in add_alternate_cea_modes()
3223 return 0; in add_alternate_cea_modes()
3287 /* 0-6 bit vic, 7th bit native mode indicator */ in svd_to_vic()
3315 newmode->vrefresh = 0; in drm_display_mode_from_vic_index()
3333 int modes = 0, i; in do_y420vdb_modes()
3338 for (i = 0; i < svds_len; i++) { in do_y420vdb_modes()
3353 if (modes > 0) in do_y420vdb_modes()
3380 int i, modes = 0; in do_cea_modes()
3383 for (i = 0; i < len; i++) { in do_cea_modes()
3392 * For example, if the bit 0 in bitmap is set, in do_cea_modes()
3442 int modes = 0, i; in add_hdmi_mandatory_stereo_modes()
3447 for (i = 0; i < ARRAY_SIZE(stereo_mandatory_modes); i++) { in add_hdmi_mandatory_stereo_modes()
3478 return 0; in add_hdmi_mode()
3483 return 0; in add_hdmi_mode()
3494 int modes = 0; in add_3d_struct_modes()
3496 if (structure & (1 << 0)) { in add_3d_struct_modes()
3544 int modes = 0, offset = 0, i, multi_present = 0, multi_len; in do_hdmi_vsdb_modes()
3545 u8 vic_len, hdmi_3d_len = 0; in do_hdmi_vsdb_modes()
3575 multi_present = (db[8 + offset] & 0x60) >> 5; in do_hdmi_vsdb_modes()
3580 hdmi_3d_len = db[8 + offset] & 0x1f; in do_hdmi_vsdb_modes()
3582 for (i = 0; i < vic_len && len >= (9 + offset + i); i++) { in do_hdmi_vsdb_modes()
3595 multi_len = 0; in do_hdmi_vsdb_modes()
3611 mask = 0xffff; in do_hdmi_vsdb_modes()
3613 for (i = 0; i < 16; i++) { in do_hdmi_vsdb_modes()
3624 for (i = 0; i < (hdmi_3d_len - multi_len); i++) { in do_hdmi_vsdb_modes()
3627 unsigned int newflag = 0; in do_hdmi_vsdb_modes()
3630 detail_present = ((db[8 + offset + i] & 0x0f) > 7); in do_hdmi_vsdb_modes()
3639 switch (db[8 + offset + i] & 0x0f) { in do_hdmi_vsdb_modes()
3640 case 0: in do_hdmi_vsdb_modes()
3653 if (newflag != 0) { in do_hdmi_vsdb_modes()
3671 if (modes > 0) in do_hdmi_vsdb_modes()
3679 return db[0] & 0x1f; in cea_db_payload_len()
3691 return db[0] >> 5; in cea_db_tag()
3720 if (cea[0] == DATA_BLOCK_CTA) { in cea_db_offsets()
3723 } else if (cea[0] == CEA_EXT) { in cea_db_offsets()
3727 if (*end == 0) in cea_db_offsets()
3735 return 0; in cea_db_offsets()
3806 u64 map = 0; in drm_parse_y420cmdb_bitmap()
3808 if (map_len == 0) { in drm_parse_y420cmdb_bitmap()
3817 * from VDB can support YCBCR420 output too. So if bit=0 is in drm_parse_y420cmdb_bitmap()
3830 for (count = 0; count < map_len; count++) in drm_parse_y420cmdb_bitmap()
3844 u8 dbl, hdmi_len, video_len = 0; in add_cea_modes()
3845 int modes = 0; in add_cea_modes()
3851 return 0; in add_cea_modes()
3867 /* Add 4:2:0(only) modes present in EDID */ in add_cea_modes()
3937 connector->latency_present[0] = db[8] >> 7; in drm_parse_hdmi_vsdb_audio()
3941 connector->video_latency[0] = db[9]; in drm_parse_hdmi_vsdb_audio()
3943 connector->audio_latency[0] = db[10]; in drm_parse_hdmi_vsdb_audio()
3952 connector->latency_present[0], in drm_parse_hdmi_vsdb_audio()
3954 connector->video_latency[0], in drm_parse_hdmi_vsdb_audio()
3956 connector->audio_latency[0], in drm_parse_hdmi_vsdb_audio()
3973 return 0; in get_monitor_name()
3976 for (mnl = 0; edid_name && mnl < 13; mnl++) { in get_monitor_name()
3977 if (edid_name[mnl] == 0x0a) in get_monitor_name()
3998 if (bufsize <= 0) in drm_edid_get_monitor_name()
4003 name[name_length] = '\0'; in drm_edid_get_monitor_name()
4009 memset(connector->eld, 0, sizeof(connector->eld)); in clear_eld()
4011 connector->latency_present[0] = false; in clear_eld()
4013 connector->video_latency[0] = 0; in clear_eld()
4014 connector->audio_latency[0] = 0; in clear_eld()
4015 connector->video_latency[1] = 0; in clear_eld()
4016 connector->audio_latency[1] = 0; in clear_eld()
4032 int total_sad_count = 0; in drm_edid_to_eld()
4055 eld[DRM_ELD_MANUFACTURER_NAME0] = edid->mfg_id[0]; in drm_edid_to_eld()
4057 eld[DRM_ELD_PRODUCT_CODE0] = edid->prod_code[0]; in drm_edid_to_eld()
4064 start = 0; in drm_edid_to_eld()
4065 end = 0; in drm_edid_to_eld()
4126 int count = 0; in drm_edid_to_sad()
4157 for (j = 0; j < count; j++) { in drm_edid_to_sad()
4160 (*sads)[j].format = (sad[0] & 0x78) >> 3; in drm_edid_to_sad()
4161 (*sads)[j].channels = sad[0] & 0x7; in drm_edid_to_sad()
4162 (*sads)[j].freq = sad[1] & 0x7F; in drm_edid_to_sad()
4187 int count = 0; in drm_edid_to_speaker_allocation()
4233 * Return: The HDMI/DP sink's audio-video sync delay in milliseconds or 0 if
4242 if (!connector->latency_present[0]) in drm_av_sync_delay()
4243 return 0; in drm_av_sync_delay()
4245 i = 0; in drm_av_sync_delay()
4254 return 0; in drm_av_sync_delay()
4258 * Treat unknown latency as 0ms. in drm_av_sync_delay()
4265 return max(v - a, 0); in drm_av_sync_delay()
4326 has_audio = ((edid_ext[3] & EDID_BASIC_AUDIO) != 0); in drm_detect_monitor_audio()
4341 (edid_ext[i + j] >> 3) & 0xf); in drm_detect_monitor_audio()
4377 DRM_DEBUG_KMS("CEA VCDB 0x%02x\n", edid_ext[i + 2]); in drm_rgb_quant_range_selectable()
4423 if (hf_vsdb[6] & 0x80) { in drm_parse_hdmi_forum_vsdb()
4425 if (hf_vsdb[6] & 0x40) in drm_parse_hdmi_forum_vsdb()
4453 if ((hf_vsdb[6] & 0x8)) in drm_parse_hdmi_forum_vsdb()
4465 unsigned int dc_bpc = 0; in drm_parse_hdmi_deep_color_info()
4494 if (dc_bpc == 0) { in drm_parse_hdmi_deep_color_info()
4590 info->width_mm = 0; in drm_reset_display_info()
4591 info->height_mm = 0; in drm_reset_display_info()
4593 info->bpc = 0; in drm_reset_display_info()
4594 info->color_formats = 0; in drm_reset_display_info()
4595 info->cea_rev = 0; in drm_reset_display_info()
4596 info->max_tmds_clock = 0; in drm_reset_display_info()
4599 memset(&info->hdmi, 0, sizeof(info->hdmi)); in drm_reset_display_info()
4601 info->non_desktop = 0; in drm_reset_display_info()
4634 if ((info->bpc == 0) && (edid->revision < 4) && in drm_add_display_info()
4666 info->bpc = 0; in drm_add_display_info()
4684 u8 csum = 0; in validate_displayid()
4689 DRM_DEBUG_KMS("base revision 0x%x, length %d, %d %d\n", in validate_displayid()
4701 return 0; in validate_displayid()
4708 unsigned pixel_clock = (timings->pixel_clock[0] | in drm_mode_displayid_detailed()
4711 unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1; in drm_mode_displayid_detailed()
4712 unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1; in drm_mode_displayid_detailed()
4713 unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1; in drm_mode_displayid_detailed()
4714 unsigned hsync_width = (timings->hsw[0] | timings->hsw[1] << 8) + 1; in drm_mode_displayid_detailed()
4715 unsigned vactive = (timings->vactive[0] | timings->vactive[1] << 8) + 1; in drm_mode_displayid_detailed()
4716 unsigned vblank = (timings->vblank[0] | timings->vblank[1] << 8) + 1; in drm_mode_displayid_detailed()
4717 unsigned vsync = (timings->vsync[0] | (timings->vsync[1] & 0x7f) << 8) + 1; in drm_mode_displayid_detailed()
4718 unsigned vsync_width = (timings->vsw[0] | timings->vsw[1] << 8) + 1; in drm_mode_displayid_detailed()
4719 bool hsync_positive = (timings->hsync[1] >> 7) & 0x1; in drm_mode_displayid_detailed()
4720 bool vsync_positive = (timings->vsync[1] >> 7) & 0x1; in drm_mode_displayid_detailed()
4736 mode->flags = 0; in drm_mode_displayid_detailed()
4741 if (timings->flags & 0x80) in drm_mode_displayid_detailed()
4756 int num_modes = 0; in add_displayid_detailed_1_modes()
4759 return 0; in add_displayid_detailed_1_modes()
4762 for (i = 0; i < num_timings; i++) { in add_displayid_detailed_1_modes()
4783 int num_modes = 0; in add_displayid_detailed_modes()
4787 return 0; in add_displayid_detailed_modes()
4791 return 0; in add_displayid_detailed_modes()
4797 block->num_bytes > 0) { in add_displayid_detailed_modes()
4817 * Return: The number of modes added or 0 if we couldn't find any.
4821 int num_modes = 0; in drm_add_edid_modes()
4826 return 0; in drm_add_edid_modes()
4832 return 0; in drm_add_edid_modes()
4896 * Return: The number of modes added or 0 if we couldn't find any.
4901 int i, count, num_modes = 0; in drm_add_modes_noedid()
4906 if (hdisplay < 0) in drm_add_modes_noedid()
4907 hdisplay = 0; in drm_add_modes_noedid()
4908 if (vdisplay < 0) in drm_add_modes_noedid()
4909 vdisplay = 0; in drm_add_modes_noedid()
4911 for (i = 0; i < count; i++) { in drm_add_modes_noedid()
4964 * Return: 0 on success or a negative error code on failure.
4978 if (err < 0) in drm_hdmi_avi_infoframe_from_display_mode()
4992 frame->video_code = 0; in drm_hdmi_avi_infoframe_from_display_mode()
5005 frame->video_code = 0; in drm_hdmi_avi_infoframe_from_display_mode()
5016 frame->itc = 0; in drm_hdmi_avi_infoframe_from_display_mode()
5042 return 0; in drm_hdmi_avi_infoframe_from_display_mode()
5074 * default RGB quantization range for the mode, even when QS=0. in drm_hdmi_avi_infoframe_quant_range()
5086 * (e.g., when Limited Range RGB, set YQ=0 or when Full Range RGB, in drm_hdmi_avi_infoframe_quant_range()
5143 * Return: 0 on success or a negative error code on failure.
5171 * (ie.vic==0 and s3d_struct==0) we will still send it if we in drm_hdmi_vendor_infoframe_from_display_mode()
5183 if (err < 0) in drm_hdmi_vendor_infoframe_from_display_mode()
5189 return 0; in drm_hdmi_vendor_infoframe_from_display_mode()
5202 w = tile->tile_size[0] | tile->tile_size[1] << 8; in drm_parse_tiled_block()
5205 num_v_tile = (tile->topo[0] & 0xf) | (tile->topo[2] & 0x30); in drm_parse_tiled_block()
5206 num_h_tile = (tile->topo[0] >> 4) | ((tile->topo[2] >> 2) & 0x30); in drm_parse_tiled_block()
5207 tile_v_loc = (tile->topo[1] & 0xf) | ((tile->topo[2] & 0x3) << 4); in drm_parse_tiled_block()
5208 tile_h_loc = (tile->topo[1] >> 4) | (((tile->topo[2] >> 2) & 0x3) << 4); in drm_parse_tiled_block()
5211 if (tile->tile_cap & 0x80) in drm_parse_tiled_block()
5221 DRM_DEBUG_KMS("tile cap 0x%x\n", tile->tile_cap); in drm_parse_tiled_block()
5225 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()
5244 return 0; in drm_parse_tiled_block()
5251 /* if this is an EDID extension the first byte will be 0x70 */ in drm_parse_display_id()
5252 int idx = 0; in drm_parse_display_id()
5267 block->num_bytes > 0) { in drm_parse_display_id()
5269 DRM_DEBUG_KMS("block id 0x%x, rev %d, len %d\n", in drm_parse_display_id()
5285 DRM_DEBUG_KMS("found DisplayID tag 0x%x, unhandled\n", block->tag); in drm_parse_display_id()
5289 return 0; in drm_parse_display_id()
5305 if (ret < 0) in drm_get_displayid()