1// Copyright 2018 The Fuchsia Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "lib/edid/timings.h" 6 7namespace edid { 8namespace internal { 9 10#define TIMING_PARAMS(pf, ha, hf, hs, hb, va, vf, vs, vb, hp, vp, i, avb, dclk, vr) \ 11 { \ 12 .pixel_freq_10khz = pf, \ 13 .horizontal_addressable = ha, \ 14 .horizontal_front_porch = hf, \ 15 .horizontal_sync_pulse = hs, \ 16 .horizontal_blanking = hb, \ 17 .vertical_addressable = va, \ 18 .vertical_front_porch = vf, \ 19 .vertical_sync_pulse = vs, \ 20 .vertical_blanking = vb, \ 21 .flags = (hp ? timing_params::kPositiveHsync : 0) \ 22 | (vp ? timing_params::kPositiveVsync : 0) \ 23 | (i ? timing_params::kInterlaced : 0) \ 24 | (avb ? timing_params::kAlternatingVblank : 0) \ 25 | (dclk ? timing_params::kDoubleClocked : 0), \ 26 .vertical_refresh_e2 = vr, \ 27 } 28 29// Timings taken from DMT v1.11 30// TODO: Handle reduced blanking 31const timing_params_t dmt_timings_arr[] = { 32 TIMING_PARAMS(3150, 640, 32, 64, 192, 350, 32, 3, 95, 1, 0, 0, 0, 0, 8508), /* 01h */ 33 TIMING_PARAMS(3150, 640, 32, 64, 192, 400, 1, 3, 45, 0, 1, 0, 0, 0, 8508), /* 02h */ 34 TIMING_PARAMS(3550, 720, 36, 72, 216, 400, 1, 3, 46, 0, 1, 0, 0, 0, 8504), /* 03h */ 35 TIMING_PARAMS(3550, 720, 36, 72, 216, 400, 1, 3, 46, 0, 1, 0, 0, 0, 8504), /* 03h */ 36 TIMING_PARAMS(2518, 640, 8, 96, 144, 480, 2, 2, 29, 0, 0, 0, 0, 0, 5994), /* 04h */ 37 TIMING_PARAMS(2518, 640, 8, 96, 144, 480, 2, 2, 29, 0, 0, 0, 0, 0, 5994), /* 04h */ 38 TIMING_PARAMS(3150, 640, 16, 40, 176, 480, 1, 3, 24, 0, 0, 0, 0, 0, 7281), /* 05h */ 39 TIMING_PARAMS(3150, 640, 16, 40, 176, 480, 1, 3, 24, 0, 0, 0, 0, 0, 7281), /* 05h */ 40 TIMING_PARAMS(3150, 640, 16, 64, 200, 480, 1, 3, 20, 0, 0, 0, 0, 0, 7500), /* 06h */ 41 TIMING_PARAMS(3150, 640, 16, 64, 200, 480, 1, 3, 20, 0, 0, 0, 0, 0, 7500), /* 06h */ 42 TIMING_PARAMS(3600, 640, 56, 56, 192, 480, 1, 3, 29, 0, 0, 0, 0, 0, 8501), /* 07h */ 43 TIMING_PARAMS(3600, 640, 56, 56, 192, 480, 1, 3, 29, 0, 0, 0, 0, 0, 8501), /* 07h */ 44 TIMING_PARAMS(3600, 800, 24, 72, 224, 600, 1, 2, 25, 1, 1, 0, 0, 0, 5625), /* 08h */ 45 TIMING_PARAMS(3600, 800, 24, 72, 224, 600, 1, 2, 25, 1, 1, 0, 0, 0, 5625), /* 08h */ 46 TIMING_PARAMS(4000, 800, 40, 128, 256, 600, 1, 4, 28, 1, 1, 0, 0, 0, 6032), /* 09h */ 47 TIMING_PARAMS(4000, 800, 40, 128, 256, 600, 1, 4, 28, 1, 1, 0, 0, 0, 6032), /* 09h */ 48 TIMING_PARAMS(5000, 800, 56, 120, 240, 600, 37, 6, 66, 1, 1, 0, 0, 0, 7219), /* 0Ah */ 49 TIMING_PARAMS(5000, 800, 56, 120, 240, 600, 37, 6, 66, 1, 1, 0, 0, 0, 7219), /* 0Ah */ 50 TIMING_PARAMS(4950, 800, 16, 80, 256, 600, 1, 3, 25, 1, 1, 0, 0, 0, 7500), /* 0Bh */ 51 TIMING_PARAMS(4950, 800, 16, 80, 256, 600, 1, 3, 25, 1, 1, 0, 0, 0, 7500), /* 0Bh */ 52 TIMING_PARAMS(5625, 800, 32, 64, 248, 600, 1, 3, 31, 1, 1, 0, 0, 0, 8506), /* 0Ch */ 53 TIMING_PARAMS(5625, 800, 32, 64, 248, 600, 1, 3, 31, 1, 1, 0, 0, 0, 8506), /* 0Ch */ 54 TIMING_PARAMS(7325, 800, 48, 32, 160, 600, 3, 4, 36, 1, 0, 0, 0, 0, 11997), /* 0Dh */ 55 TIMING_PARAMS(7325, 800, 48, 32, 160, 600, 3, 4, 36, 1, 0, 0, 0, 0, 11997), /* 0Dh */ 56 TIMING_PARAMS(3375, 848, 16, 112, 240, 480, 6, 8, 37, 1, 1, 0, 0, 0, 6000), /* 0Eh */ 57 TIMING_PARAMS(3375, 848, 16, 112, 240, 480, 6, 8, 37, 1, 1, 0, 0, 0, 6000), /* 0Eh */ 58 TIMING_PARAMS(4490, 1024, 8, 176, 240, 768, 0, 4, 24, 1, 1, 1, 0, 0, 8696), /* 0Fh */ 59 TIMING_PARAMS(4490, 1024, 8, 176, 240, 768, 0, 4, 24, 1, 1, 1, 0, 0, 8696), /* 0Fh */ 60 TIMING_PARAMS(6500, 1024, 24, 136, 320, 768, 3, 6, 38, 0, 0, 0, 0, 0, 6000), /* 10h */ 61 TIMING_PARAMS(6500, 1024, 24, 136, 320, 768, 3, 6, 38, 0, 0, 0, 0, 0, 6000), /* 10h */ 62 TIMING_PARAMS(7500, 1024, 24, 136, 304, 768, 3, 6, 38, 0, 0, 0, 0, 0, 7006), /* 11h */ 63 TIMING_PARAMS(7500, 1024, 24, 136, 304, 768, 3, 6, 38, 0, 0, 0, 0, 0, 7006), /* 11h */ 64 TIMING_PARAMS(7875, 1024, 16, 96, 288, 768, 1, 3, 32, 1, 1, 0, 0, 0, 7503), /* 12h */ 65 TIMING_PARAMS(7875, 1024, 16, 96, 288, 768, 1, 3, 32, 1, 1, 0, 0, 0, 7503), /* 12h */ 66 TIMING_PARAMS(9450, 1024, 48, 96, 352, 768, 1, 3, 40, 1, 1, 0, 0, 0, 8500), /* 13h */ 67 TIMING_PARAMS(9450, 1024, 48, 96, 352, 768, 1, 3, 40, 1, 1, 0, 0, 0, 8500), /* 13h */ 68 TIMING_PARAMS(11550, 1024, 48, 32, 160, 768, 3, 4, 45, 1, 0, 0, 0, 0, 11999), /* 14h */ 69 TIMING_PARAMS(11550, 1024, 48, 32, 160, 768, 3, 4, 45, 1, 0, 0, 0, 0, 11999), /* 14h */ 70 TIMING_PARAMS(10800, 1152, 64, 128, 448, 864, 1, 3, 36, 1, 1, 0, 0, 0, 7500), /* 15h */ 71 TIMING_PARAMS(10800, 1152, 64, 128, 448, 864, 1, 3, 36, 1, 1, 0, 0, 0, 7500), /* 15h */ 72 TIMING_PARAMS(6825, 1280, 48, 32, 160, 768, 3, 7, 22, 1, 0, 0, 0, 0, 5999), /* 16h */ 73 TIMING_PARAMS(6825, 1280, 48, 32, 160, 768, 3, 7, 22, 1, 0, 0, 0, 0, 5999), /* 16h */ 74 TIMING_PARAMS(7950, 1280, 64, 128, 384, 768, 3, 7, 30, 0, 1, 0, 0, 0, 5987), /* 17h */ 75 TIMING_PARAMS(7950, 1280, 64, 128, 384, 768, 3, 7, 30, 0, 1, 0, 0, 0, 5987), /* 17h */ 76 TIMING_PARAMS(10225, 1280, 80, 128, 416, 768, 3, 7, 37, 0, 1, 0, 0, 0, 7489), /* 18h */ 77 TIMING_PARAMS(10225, 1280, 80, 128, 416, 768, 3, 7, 37, 0, 1, 0, 0, 0, 7489), /* 18h */ 78 TIMING_PARAMS(11750, 1280, 80, 136, 432, 768, 3, 7, 41, 0, 1, 0, 0, 0, 8484), /* 19h */ 79 TIMING_PARAMS(11750, 1280, 80, 136, 432, 768, 3, 7, 41, 0, 1, 0, 0, 0, 8484), /* 19h */ 80 TIMING_PARAMS(14025, 1280, 48, 32, 160, 768, 3, 7, 45, 1, 0, 0, 0, 0, 11980), /* 1Ah */ 81 TIMING_PARAMS(14025, 1280, 48, 32, 160, 768, 3, 7, 45, 1, 0, 0, 0, 0, 11980), /* 1Ah */ 82 TIMING_PARAMS(7100, 1280, 48, 32, 160, 800, 3, 6, 23, 1, 0, 0, 0, 0, 5991), /* 1Bh */ 83 TIMING_PARAMS(7100, 1280, 48, 32, 160, 800, 3, 6, 23, 1, 0, 0, 0, 0, 5991), /* 1Bh */ 84 TIMING_PARAMS(8350, 1280, 72, 128, 400, 800, 3, 6, 31, 0, 1, 0, 0, 0, 5981), /* 1Ch */ 85 TIMING_PARAMS(8350, 1280, 72, 128, 400, 800, 3, 6, 31, 0, 1, 0, 0, 0, 5981), /* 1Ch */ 86 TIMING_PARAMS(10650, 1280, 80, 128, 416, 800, 3, 6, 38, 0, 1, 0, 0, 0, 7493), /* 1Dh */ 87 TIMING_PARAMS(10650, 1280, 80, 128, 416, 800, 3, 6, 38, 0, 1, 0, 0, 0, 7493), /* 1Dh */ 88 TIMING_PARAMS(12250, 1280, 80, 136, 432, 800, 3, 6, 43, 0, 1, 0, 0, 0, 8488), /* 1Eh */ 89 TIMING_PARAMS(12250, 1280, 80, 136, 432, 800, 3, 6, 43, 0, 1, 0, 0, 0, 8488), /* 1Eh */ 90 TIMING_PARAMS(14625, 1280, 48, 32, 160, 800, 3, 6, 47, 1, 0, 0, 0, 0, 11991), /* 1Fh */ 91 TIMING_PARAMS(14625, 1280, 48, 32, 160, 800, 3, 6, 47, 1, 0, 0, 0, 0, 11991), /* 1Fh */ 92 TIMING_PARAMS(10800, 1280, 96, 112, 520, 960, 1, 3, 40, 1, 1, 0, 0, 0, 6000), /* 20h */ 93 TIMING_PARAMS(10800, 1280, 96, 112, 520, 960, 1, 3, 40, 1, 1, 0, 0, 0, 6000), /* 20h */ 94 TIMING_PARAMS(14850, 1280, 64, 160, 448, 960, 1, 3, 51, 1, 1, 0, 0, 0, 8500), /* 21h */ 95 TIMING_PARAMS(14850, 1280, 64, 160, 448, 960, 1, 3, 51, 1, 1, 0, 0, 0, 8500), /* 21h */ 96 TIMING_PARAMS(17550, 1280, 48, 32, 160, 960, 3, 4, 57, 1, 0, 0, 0, 0, 11984), /* 22h */ 97 TIMING_PARAMS(17550, 1280, 48, 32, 160, 960, 3, 4, 57, 1, 0, 0, 0, 0, 11984), /* 22h */ 98 TIMING_PARAMS(10800, 1280, 48, 112, 408, 1024, 1, 3, 42, 1, 1, 0, 0, 0, 6002), /* 23h */ 99 TIMING_PARAMS(10800, 1280, 48, 112, 408, 1024, 1, 3, 42, 1, 1, 0, 0, 0, 6002), /* 23h */ 100 TIMING_PARAMS(13500, 1280, 16, 144, 408, 1024, 1, 3, 42, 1, 1, 0, 0, 0, 7503), /* 24h */ 101 TIMING_PARAMS(13500, 1280, 16, 144, 408, 1024, 1, 3, 42, 1, 1, 0, 0, 0, 7503), /* 24h */ 102 TIMING_PARAMS(15750, 1280, 64, 160, 448, 1024, 1, 3, 48, 1, 1, 0, 0, 0, 8502), /* 25h */ 103 TIMING_PARAMS(15750, 1280, 64, 160, 448, 1024, 1, 3, 48, 1, 1, 0, 0, 0, 8502), /* 25h */ 104 TIMING_PARAMS(18725, 1280, 48, 32, 160, 1024, 3, 7, 60, 1, 0, 0, 0, 0, 11996), /* 26h */ 105 TIMING_PARAMS(18725, 1280, 48, 32, 160, 1024, 3, 7, 60, 1, 0, 0, 0, 0, 11996), /* 26h */ 106 TIMING_PARAMS(8550, 1360, 64, 112, 432, 768, 3, 6, 27, 1, 1, 0, 0, 0, 6002), /* 27h */ 107 TIMING_PARAMS(8550, 1360, 64, 112, 432, 768, 3, 6, 27, 1, 1, 0, 0, 0, 6002), /* 27h */ 108 TIMING_PARAMS(14825, 1360, 48, 32, 160, 768, 3, 5, 45, 1, 0, 0, 0, 0, 11997), /* 28h */ 109 TIMING_PARAMS(14825, 1360, 48, 32, 160, 768, 3, 5, 45, 1, 0, 0, 0, 0, 11997), /* 28h */ 110 TIMING_PARAMS(10100, 1400, 48, 32, 160, 1050, 3, 4, 30, 1, 0, 0, 0, 0, 5995), /* 29h */ 111 TIMING_PARAMS(10100, 1400, 48, 32, 160, 1050, 3, 4, 30, 1, 0, 0, 0, 0, 5995), /* 29h */ 112 TIMING_PARAMS(12175, 1400, 88, 144, 464, 1050, 3, 4, 39, 0, 1, 0, 0, 0, 5998), /* 2Ah */ 113 TIMING_PARAMS(12175, 1400, 88, 144, 464, 1050, 3, 4, 39, 0, 1, 0, 0, 0, 5998), /* 2Ah */ 114 TIMING_PARAMS(15600, 1400, 104, 144, 496, 1050, 3, 4, 49, 0, 1, 0, 0, 0, 7487), /* 2Bh */ 115 TIMING_PARAMS(15600, 1400, 104, 144, 496, 1050, 3, 4, 49, 0, 1, 0, 0, 0, 7487), /* 2Bh */ 116 TIMING_PARAMS(17950, 1400, 104, 152, 512, 1050, 3, 4, 55, 0, 1, 0, 0, 0, 8496), /* 2Ch */ 117 TIMING_PARAMS(17950, 1400, 104, 152, 512, 1050, 3, 4, 55, 0, 1, 0, 0, 0, 8496), /* 2Ch */ 118 TIMING_PARAMS(20800, 1400, 48, 32, 160, 1050, 3, 4, 62, 1, 0, 0, 0, 0, 11990), /* 2Dh */ 119 TIMING_PARAMS(20800, 1400, 48, 32, 160, 1050, 3, 4, 62, 1, 0, 0, 0, 0, 11990), /* 2Dh */ 120 TIMING_PARAMS(8875, 1440, 48, 32, 160, 900, 3, 6, 26, 1, 0, 0, 0, 0, 5990), /* 2Eh */ 121 TIMING_PARAMS(8875, 1440, 48, 32, 160, 900, 3, 6, 26, 1, 0, 0, 0, 0, 5990), /* 2Eh */ 122 TIMING_PARAMS(10650, 1440, 80, 152, 464, 900, 3, 6, 34, 0, 1, 0, 0, 0, 5989), /* 2Fh */ 123 TIMING_PARAMS(10650, 1440, 80, 152, 464, 900, 3, 6, 34, 0, 1, 0, 0, 0, 5989), /* 2Fh */ 124 TIMING_PARAMS(13675, 1440, 96, 152, 496, 900, 3, 6, 42, 0, 1, 0, 0, 0, 7498), /* 30h */ 125 TIMING_PARAMS(13675, 1440, 96, 152, 496, 900, 3, 6, 42, 0, 1, 0, 0, 0, 7498), /* 30h */ 126 TIMING_PARAMS(15700, 1440, 104, 152, 512, 900, 3, 6, 48, 0, 1, 0, 0, 0, 8484), /* 31h */ 127 TIMING_PARAMS(15700, 1440, 104, 152, 512, 900, 3, 6, 48, 0, 1, 0, 0, 0, 8484), /* 31h */ 128 TIMING_PARAMS(18275, 1440, 48, 32, 160, 900, 3, 6, 53, 1, 0, 0, 0, 0, 11985), /* 32h */ 129 TIMING_PARAMS(18275, 1440, 48, 32, 160, 900, 3, 6, 53, 1, 0, 0, 0, 0, 11985), /* 32h */ 130 TIMING_PARAMS(16200, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 6000), /* 33h */ 131 TIMING_PARAMS(16200, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 6000), /* 33h */ 132 TIMING_PARAMS(17550, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 6500), /* 34h */ 133 TIMING_PARAMS(17550, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 6500), /* 34h */ 134 TIMING_PARAMS(18900, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 7000), /* 35h */ 135 TIMING_PARAMS(18900, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 7000), /* 35h */ 136 TIMING_PARAMS(20250, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 7500), /* 36h */ 137 TIMING_PARAMS(20250, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 7500), /* 36h */ 138 TIMING_PARAMS(22950, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 8500), /* 37h */ 139 TIMING_PARAMS(22950, 1600, 64, 192, 560, 1200, 1, 3, 50, 1, 1, 0, 0, 0, 8500), /* 37h */ 140 TIMING_PARAMS(26825, 1600, 48, 32, 160, 1200, 3, 4, 71, 1, 0, 0, 0, 0, 11992), /* 38h */ 141 TIMING_PARAMS(26825, 1600, 48, 32, 160, 1200, 3, 4, 71, 1, 0, 0, 0, 0, 11992), /* 38h */ 142 TIMING_PARAMS(11900, 1680, 48, 32, 160, 1050, 3, 6, 30, 1, 0, 0, 0, 0, 5988), /* 39h */ 143 TIMING_PARAMS(11900, 1680, 48, 32, 160, 1050, 3, 6, 30, 1, 0, 0, 0, 0, 5988), /* 39h */ 144 TIMING_PARAMS(14625, 1680, 104, 176, 560, 1050, 3, 6, 39, 0, 1, 0, 0, 0, 5995), /* 3Ah */ 145 TIMING_PARAMS(14625, 1680, 104, 176, 560, 1050, 3, 6, 39, 0, 1, 0, 0, 0, 5995), /* 3Ah */ 146 TIMING_PARAMS(18700, 1680, 120, 176, 592, 1050, 3, 6, 49, 0, 1, 0, 0, 0, 7489), /* 3Bh */ 147 TIMING_PARAMS(18700, 1680, 120, 176, 592, 1050, 3, 6, 49, 0, 1, 0, 0, 0, 7489), /* 3Bh */ 148 TIMING_PARAMS(21475, 1680, 128, 176, 608, 1050, 3, 6, 55, 0, 1, 0, 0, 0, 8494), /* 3Ch */ 149 TIMING_PARAMS(21475, 1680, 128, 176, 608, 1050, 3, 6, 55, 0, 1, 0, 0, 0, 8494), /* 3Ch */ 150 TIMING_PARAMS(24550, 1680, 48, 32, 160, 1050, 3, 6, 62, 1, 0, 0, 0, 0, 11999), /* 3Dh */ 151 TIMING_PARAMS(24550, 1680, 48, 32, 160, 1050, 3, 6, 62, 1, 0, 0, 0, 0, 11999), /* 3Dh */ 152 TIMING_PARAMS(20475, 1792, 128, 200, 656, 1344, 1, 3, 50, 0, 1, 0, 0, 0, 6000), /* 3Eh */ 153 TIMING_PARAMS(20475, 1792, 128, 200, 656, 1344, 1, 3, 50, 0, 1, 0, 0, 0, 6000), /* 3Eh */ 154 TIMING_PARAMS(26100, 1792, 96, 216, 664, 1344, 1, 3, 73, 0, 1, 0, 0, 0, 7500), /* 3Fh */ 155 TIMING_PARAMS(26100, 1792, 96, 216, 664, 1344, 1, 3, 73, 0, 1, 0, 0, 0, 7500), /* 3Fh */ 156 TIMING_PARAMS(33325, 1792, 48, 32, 160, 1344, 3, 4, 79, 1, 0, 0, 0, 0, 11997), /* 40h */ 157 TIMING_PARAMS(33325, 1792, 48, 32, 160, 1344, 3, 4, 79, 1, 0, 0, 0, 0, 11997), /* 40h */ 158 TIMING_PARAMS(21825, 1856, 96, 224, 672, 1392, 1, 3, 47, 0, 1, 0, 0, 0, 5999), /* 41h */ 159 TIMING_PARAMS(21825, 1856, 96, 224, 672, 1392, 1, 3, 47, 0, 1, 0, 0, 0, 5999), /* 41h */ 160 TIMING_PARAMS(28800, 1856, 128, 224, 704, 1392, 1, 3, 108, 0, 1, 0, 0, 0, 7500), /* 42h */ 161 TIMING_PARAMS(28800, 1856, 128, 224, 704, 1392, 1, 3, 108, 0, 1, 0, 0, 0, 7500), /* 42h */ 162 TIMING_PARAMS(35650, 1856, 48, 32, 160, 1392, 3, 4, 82, 1, 0, 0, 0, 0, 11997), /* 43h */ 163 TIMING_PARAMS(35650, 1856, 48, 32, 160, 1392, 3, 4, 82, 1, 0, 0, 0, 0, 11997), /* 43h */ 164 TIMING_PARAMS(15400, 1920, 48, 32, 160, 1200, 3, 6, 35, 1, 0, 0, 0, 0, 5995), /* 44h */ 165 TIMING_PARAMS(15400, 1920, 48, 32, 160, 1200, 3, 6, 35, 1, 0, 0, 0, 0, 5995), /* 44h */ 166 TIMING_PARAMS(19325, 1920, 136, 200, 672, 1200, 3, 6, 45, 0, 1, 0, 0, 0, 5988), /* 45h */ 167 TIMING_PARAMS(19325, 1920, 136, 200, 672, 1200, 3, 6, 45, 0, 1, 0, 0, 0, 5988), /* 45h */ 168 TIMING_PARAMS(24525, 1920, 136, 208, 688, 1200, 3, 6, 55, 0, 1, 0, 0, 0, 7493), /* 46h */ 169 TIMING_PARAMS(24525, 1920, 136, 208, 688, 1200, 3, 6, 55, 0, 1, 0, 0, 0, 7493), /* 46h */ 170 TIMING_PARAMS(28125, 1920, 144, 208, 704, 1200, 3, 6, 62, 0, 1, 0, 0, 0, 8493), /* 47h */ 171 TIMING_PARAMS(28125, 1920, 144, 208, 704, 1200, 3, 6, 62, 0, 1, 0, 0, 0, 8493), /* 47h */ 172 TIMING_PARAMS(31700, 1920, 48, 32, 160, 1200, 3, 6, 71, 1, 0, 0, 0, 0, 11991), /* 48h */ 173 TIMING_PARAMS(31700, 1920, 48, 32, 160, 1200, 3, 6, 71, 1, 0, 0, 0, 0, 11991), /* 48h */ 174 TIMING_PARAMS(23400, 1920, 128, 208, 680, 1440, 1, 3, 60, 0, 1, 0, 0, 0, 6000), /* 49h */ 175 TIMING_PARAMS(23400, 1920, 128, 208, 680, 1440, 1, 3, 60, 0, 1, 0, 0, 0, 6000), /* 49h */ 176 TIMING_PARAMS(29700, 1920, 144, 224, 720, 1440, 1, 3, 60, 0, 1, 0, 0, 0, 7500), /* 4Ah */ 177 TIMING_PARAMS(29700, 1920, 144, 224, 720, 1440, 1, 3, 60, 0, 1, 0, 0, 0, 7500), /* 4Ah */ 178 TIMING_PARAMS(38050, 1920, 48, 32, 160, 1440, 3, 4, 85, 1, 0, 0, 0, 0, 11996), /* 4Bh */ 179 TIMING_PARAMS(38050, 1920, 48, 32, 160, 1440, 3, 4, 85, 1, 0, 0, 0, 0, 11996), /* 4Bh */ 180 TIMING_PARAMS(26850, 2560, 48, 32, 160, 1600, 3, 6, 46, 1, 0, 0, 0, 0, 5997), /* 4Ch */ 181 TIMING_PARAMS(26850, 2560, 48, 32, 160, 1600, 3, 6, 46, 1, 0, 0, 0, 0, 5997), /* 4Ch */ 182 TIMING_PARAMS(34850, 2560, 192, 280, 944, 1600, 3, 6, 58, 0, 1, 0, 0, 0, 5999), /* 4Dh */ 183 TIMING_PARAMS(34850, 2560, 192, 280, 944, 1600, 3, 6, 58, 0, 1, 0, 0, 0, 5999), /* 4Dh */ 184 TIMING_PARAMS(44325, 2560, 208, 280, 976, 1600, 3, 6, 72, 0, 1, 0, 0, 0, 7497), /* 4Eh */ 185 TIMING_PARAMS(44325, 2560, 208, 280, 976, 1600, 3, 6, 72, 0, 1, 0, 0, 0, 7497), /* 4Eh */ 186 TIMING_PARAMS(50525, 2560, 208, 280, 976, 1600, 3, 6, 82, 0, 1, 0, 0, 0, 8495), /* 4Fh */ 187 TIMING_PARAMS(50525, 2560, 208, 280, 976, 1600, 3, 6, 82, 0, 1, 0, 0, 0, 8495), /* 4Fh */ 188 TIMING_PARAMS(55275, 2560, 48, 32, 160, 1600, 3, 6, 94, 1, 0, 0, 0, 0, 11996), /* 50h */ 189 TIMING_PARAMS(55275, 2560, 48, 32, 160, 1600, 3, 6, 94, 1, 0, 0, 0, 0, 11996), /* 50h */ 190}; 191 192const timing_params_t* dmt_timings = dmt_timings_arr; 193const uint32_t dmt_timings_count = sizeof(dmt_timings_arr) / sizeof(dmt_timings_arr[0]); 194 195// Timings taken from ANSI/CTA-861-F 196const timing_params_t cea_timings_arr[] = { 197 TIMING_PARAMS(2518, 640, 16, 96, 160, 480, 10, 2, 45, 0, 0, 0, 0, 0, 5994), /* 1 */ 198 TIMING_PARAMS(2700, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 5994), /* 2 */ 199 TIMING_PARAMS(2700, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 5994), /* 3 */ 200 TIMING_PARAMS(7425, 1280, 110, 40, 370, 720, 5, 5, 30, 1, 1, 0, 0, 0, 6000), /* 4 */ 201 TIMING_PARAMS(7425, 1920, 88, 44, 280, 1080, 2, 5, 22, 1, 1, 1, 1, 0, 6000), /* 5 */ 202 TIMING_PARAMS(2700, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 5994), /* 6 */ 203 TIMING_PARAMS(2700, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 5994), /* 7 */ 204 TIMING_PARAMS(2700, 1440, 38, 124, 276, 240, 4, 3, 22, 0, 0, 0, 0, 1, 6005), /* 8 */ 205 TIMING_PARAMS(2700, 1440, 38, 124, 276, 240, 4, 3, 22, 0, 0, 0, 0, 1, 6005), /* 9 */ 206 TIMING_PARAMS(5400, 2880, 76, 248, 552, 480, 4, 3, 22, 0, 0, 1, 1, 1, 5994), /* 10 */ 207 TIMING_PARAMS(5400, 2880, 76, 248, 552, 480, 4, 3, 22, 0, 0, 1, 1, 1, 5994), /* 11 */ 208 TIMING_PARAMS(5400, 2880, 76, 248, 552, 240, 4, 3, 22, 0, 0, 0, 0, 1, 6005), /* 12 */ 209 TIMING_PARAMS(5400, 2880, 76, 248, 552, 240, 4, 3, 22, 0, 0, 0, 0, 1, 6005), /* 13 */ 210 TIMING_PARAMS(5400, 1440, 32, 124, 276, 480, 9, 6, 45, 0, 0, 0, 0, 1, 5994), /* 14 */ 211 TIMING_PARAMS(5400, 1440, 32, 124, 276, 480, 9, 6, 45, 0, 0, 0, 0, 1, 5994), /* 15 */ 212 TIMING_PARAMS(14850, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 6000), /* 16 */ 213 TIMING_PARAMS(2700, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 5000), /* 17 */ 214 TIMING_PARAMS(2700, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 5000), /* 18 */ 215 TIMING_PARAMS(7425, 1280, 440, 40, 700, 720, 5, 5, 30, 1, 1, 0, 0, 0, 5000), /* 19 */ 216 TIMING_PARAMS(7425, 1920, 528, 44, 720, 1080, 2, 5, 22, 1, 1, 1, 1, 0, 5000), /* 20 */ 217 TIMING_PARAMS(2700, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 5000), /* 21 */ 218 TIMING_PARAMS(2700, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 5000), /* 22 */ 219 TIMING_PARAMS(2700, 1440, 24, 126, 288, 288, 2, 3, 24, 0, 0, 0, 0, 1, 5008), /* 23 */ 220 TIMING_PARAMS(2700, 1440, 24, 126, 288, 288, 2, 3, 24, 0, 0, 0, 0, 1, 5008), /* 24 */ 221 TIMING_PARAMS(5400, 2880, 48, 252, 576, 576, 2, 3, 24, 0, 0, 1, 1, 1, 5000), /* 25 */ 222 TIMING_PARAMS(5400, 2880, 48, 252, 576, 576, 2, 3, 24, 0, 0, 1, 1, 1, 5000), /* 26 */ 223 TIMING_PARAMS(5400, 2880, 48, 252, 576, 288, 2, 3, 24, 0, 0, 0, 0, 1, 5008), /* 27 */ 224 TIMING_PARAMS(5400, 2880, 48, 252, 576, 288, 2, 3, 24, 0, 0, 0, 0, 1, 5008), /* 28 */ 225 TIMING_PARAMS(5400, 1440, 24, 128, 288, 576, 5, 5, 49, 0, 0, 0, 0, 1, 5000), /* 29 */ 226 TIMING_PARAMS(5400, 1440, 24, 128, 288, 576, 5, 5, 49, 0, 0, 0, 0, 1, 5000), /* 30 */ 227 TIMING_PARAMS(14850, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 5000), /* 31 */ 228 TIMING_PARAMS(7425, 1920, 638, 44, 830, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 2400), /* 32 */ 229 TIMING_PARAMS(7425, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 2500), /* 33 */ 230 TIMING_PARAMS(7425, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 3000), /* 34 */ 231 TIMING_PARAMS(10800, 2880, 64, 248, 552, 480, 9, 6, 45, 0, 0, 0, 0, 1, 5994), /* 35 */ 232 TIMING_PARAMS(10800, 2880, 64, 248, 552, 480, 9, 6, 45, 0, 0, 0, 0, 1, 5994), /* 36 */ 233 TIMING_PARAMS(10800, 2880, 48, 256, 576, 576, 5, 5, 49, 0, 0, 0, 0, 1, 5000), /* 37 */ 234 TIMING_PARAMS(10800, 2880, 48, 256, 576, 576, 5, 5, 49, 0, 0, 0, 0, 1, 5000), /* 38 */ 235 TIMING_PARAMS(7200, 1920, 32, 168, 384, 1080, 23, 5, 85, 1, 0, 1, 0, 0, 5000), /* 39 */ 236 TIMING_PARAMS(14850, 1920, 528, 44, 720, 1080, 2, 5, 22, 1, 1, 1, 1, 0, 10000), /* 40 */ 237 TIMING_PARAMS(14850, 1280, 440, 40, 700, 720, 5, 5, 30, 1, 1, 0, 0, 0, 10000), /* 41 */ 238 TIMING_PARAMS(5400, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 10000), /* 42 */ 239 TIMING_PARAMS(5400, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 10000), /* 43 */ 240 TIMING_PARAMS(5400, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 10000), /* 44 */ 241 TIMING_PARAMS(5400, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 10000), /* 45 */ 242 TIMING_PARAMS(14850, 1920, 88, 44, 280, 1080, 2, 5, 22, 1, 1, 1, 1, 0, 12000), /* 46 */ 243 TIMING_PARAMS(14850, 1280, 110, 40, 370, 720, 5, 5, 30, 1, 1, 0, 0, 0, 12000), /* 47 */ 244 TIMING_PARAMS(5400, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 11988), /* 48 */ 245 TIMING_PARAMS(5400, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 11988), /* 49 */ 246 TIMING_PARAMS(5400, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 11988), /* 50 */ 247 TIMING_PARAMS(5400, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 11988), /* 51 */ 248 TIMING_PARAMS(10800, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 20000), /* 52 */ 249 TIMING_PARAMS(10800, 720, 12, 64, 144, 576, 5, 5, 49, 0, 0, 0, 0, 0, 20000), /* 53 */ 250 TIMING_PARAMS(10800, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 20000), /* 54 */ 251 TIMING_PARAMS(10800, 1440, 24, 126, 288, 576, 2, 3, 24, 0, 0, 1, 1, 1, 20000), /* 55 */ 252 TIMING_PARAMS(10800, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 23976), /* 56 */ 253 TIMING_PARAMS(10800, 720, 16, 62, 138, 480, 9, 6, 45, 0, 0, 0, 0, 0, 23976), /* 57 */ 254 TIMING_PARAMS(10800, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 23976), /* 58 */ 255 TIMING_PARAMS(10800, 1440, 38, 124, 276, 480, 4, 3, 22, 0, 0, 1, 1, 1, 23976), /* 59 */ 256 TIMING_PARAMS(5940, 1280, 1760, 40, 2020, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2400), /* 60 */ 257 TIMING_PARAMS(7425, 1280, 2420, 40, 2680, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2500), /* 61 */ 258 TIMING_PARAMS(7425, 1280, 1760, 40, 2020, 720, 5, 5, 30, 1, 1, 0, 0, 0, 3000), /* 62 */ 259 TIMING_PARAMS(29700, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 12000), /* 63 */ 260 TIMING_PARAMS(29700, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 10000), /* 64 */ 261 TIMING_PARAMS(5940, 1280, 1760, 40, 2020, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2400), /* 65 */ 262 TIMING_PARAMS(7425, 1280, 2420, 40, 2680, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2500), /* 66 */ 263 TIMING_PARAMS(7425, 1280, 1760, 40, 2020, 720, 5, 5, 30, 1, 1, 0, 0, 0, 3000), /* 67 */ 264 TIMING_PARAMS(7425, 1280, 440, 40, 700, 720, 5, 5, 30, 1, 1, 0, 0, 0, 5000), /* 68 */ 265 TIMING_PARAMS(7425, 1280, 110, 40, 370, 720, 5, 5, 30, 1, 1, 0, 0, 0, 6000), /* 69 */ 266 TIMING_PARAMS(14850, 1280, 440, 40, 700, 720, 5, 5, 30, 1, 1, 0, 0, 0, 10000), /* 70 */ 267 TIMING_PARAMS(14850, 1280, 110, 40, 370, 720, 5, 5, 30, 1, 1, 0, 0, 0, 12000), /* 71 */ 268 TIMING_PARAMS(7425, 1920, 638, 44, 830, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 2400), /* 72 */ 269 TIMING_PARAMS(7425, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 2500), /* 73 */ 270 TIMING_PARAMS(7425, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 3000), /* 74 */ 271 TIMING_PARAMS(14850, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 5000), /* 75 */ 272 TIMING_PARAMS(14850, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 6000), /* 76 */ 273 TIMING_PARAMS(29700, 1920, 528, 44, 720, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 10000), /* 77 */ 274 TIMING_PARAMS(29700, 1920, 88, 44, 280, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 12000), /* 78 */ 275 TIMING_PARAMS(5940, 1680, 1360, 40, 1620, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2400), /* 79 */ 276 TIMING_PARAMS(5940, 1680, 1228, 40, 1488, 720, 5, 5, 30, 1, 1, 0, 0, 0, 2500), /* 80 */ 277 TIMING_PARAMS(5940, 1680, 700, 40, 960, 720, 5, 5, 30, 1, 1, 0, 0, 0, 3000), /* 81 */ 278 TIMING_PARAMS(8250, 1680, 260, 40, 520, 720, 5, 5, 30, 1, 1, 0, 0, 0, 5000), /* 82 */ 279 TIMING_PARAMS(9900, 1680, 260, 40, 520, 720, 5, 5, 30, 1, 1, 0, 0, 0, 6000), /* 83 */ 280 TIMING_PARAMS(16500, 1680, 60, 40, 320, 720, 5, 5, 105, 1, 1, 0, 0, 0, 10000), /* 84 */ 281 TIMING_PARAMS(19800, 1680, 60, 40, 320, 720, 5, 5, 105, 1, 1, 0, 0, 0, 12000), /* 85 */ 282 TIMING_PARAMS(9900, 2560, 998, 44, 1190, 1080, 4, 5, 20, 1, 1, 0, 0, 0, 2400), /* 86 */ 283 TIMING_PARAMS(9000, 2560, 448, 44, 640, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 2500), /* 87 */ 284 TIMING_PARAMS(11880, 2560, 768, 44, 960, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 3000), /* 88 */ 285 TIMING_PARAMS(18563, 2560, 548, 44, 740, 1080, 4, 5, 45, 1, 1, 0, 0, 0, 5000), /* 89 */ 286 TIMING_PARAMS(19800, 2560, 248, 44, 440, 1080, 4, 5, 20, 1, 1, 0, 0, 0, 6000), /* 90 */ 287 TIMING_PARAMS(37125, 2560, 218, 44, 410, 1080, 4, 5, 170, 1, 1, 0, 0, 0, 10000), /* 91 */ 288 TIMING_PARAMS(49500, 2560, 548, 44, 740, 1080, 4, 5, 170, 1, 1, 0, 0, 0, 12000), /* 92 */ 289 TIMING_PARAMS(29700, 3840, 1276, 88, 1660, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2400), /* 93 */ 290 TIMING_PARAMS(29700, 3840, 1056, 88, 1440, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2500), /* 94 */ 291 TIMING_PARAMS(29700, 3840, 176, 88, 560, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 3000), /* 95 */ 292 TIMING_PARAMS(59400, 3840, 1056, 88, 1440, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 5000), /* 96 */ 293 TIMING_PARAMS(59400, 3840, 176, 88, 560, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 6000), /* 97 */ 294 TIMING_PARAMS(29700, 4096, 1020, 88, 1404, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2400), /* 98 */ 295 TIMING_PARAMS(29700, 4096, 968, 88, 1184, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2500), /* 99 */ 296 TIMING_PARAMS(29700, 4096, 88, 88, 304, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 3000), /* 100 */ 297 TIMING_PARAMS(59400, 4096, 968, 88, 1184, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 5000), /* 101 */ 298 TIMING_PARAMS(59400, 4096, 88, 88, 304, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 6000), /* 102 */ 299 TIMING_PARAMS(29700, 3840, 1276, 88, 1660, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2400), /* 103 */ 300 TIMING_PARAMS(29700, 3840, 1056, 88, 1440, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 2500), /* 104 */ 301 TIMING_PARAMS(29700, 3840, 176, 88, 560, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 3000), /* 105 */ 302 TIMING_PARAMS(59400, 3840, 1056, 88, 1440, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 5000), /* 106 */ 303 TIMING_PARAMS(59400, 3840, 176, 88, 560, 2160, 8, 10, 90, 1, 1, 0, 0, 0, 6000), /* 107 */ 304}; 305 306const timing_params_t* cea_timings = cea_timings_arr; 307const uint32_t cea_timings_count = sizeof(cea_timings_arr) / sizeof(cea_timings_arr[0]); 308 309} // namespace internal 310} // namespace edid 311