#include #include #include static struct hdmi_format_para fmt_para_1920x1080p60_16x9 = { .vic = HDMI_1920x1080p60_16x9, .name = "1920x1080p60hz", .sname = "1080p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 67500, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2200, .h_blank = 280, .h_front = 88, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p30_16x9 = { .vic = HDMI_1920x1080p30_16x9, .name = "1920x1080p30hz", .sname = "1080p30hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 67500, .v_freq = 30000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2200, .h_blank = 280, .h_front = 88, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p50_16x9 = { .vic = HDMI_1920x1080p50_16x9, .name = "1920x1080p50hz", .sname = "1080p50hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 56250, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2640, .h_blank = 720, .h_front = 528, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p100_16x9 = { .vic = HDMI_1920x1080p100_16x9, .name = "1920x1080p100hz", .sname = "1080p100hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 112500, .v_freq = 100000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2640, .h_blank = 720, .h_front = 528, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p120_16x9 = { .vic = HDMI_1920x1080p120_16x9, .name = "1920x1080p120hz", .sname = "1080p120hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 135000, .v_freq = 120000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2200, .h_blank = 280, .h_front = 88, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p25_16x9 = { .vic = HDMI_1920x1080p25_16x9, .name = "1920x1080p25hz", .sname = "1080p25hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 56250, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2640, .h_blank = 720, .h_front = 528, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080p24_16x9 = { .vic = HDMI_1920x1080p24_16x9, .name = "1920x1080p24hz", .sname = "1080p24hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 27000, .v_freq = 24000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2750, .h_blank = 830, .h_front = 638, .h_sync = 44, .h_back = 148, .v_active = 1080, .v_total = 1125, .v_blank = 45, .v_front = 4, .v_sync = 5, .v_back = 36, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p30_16x9 = { .vic = HDMI_3840x2160p30_16x9, .name = "3840x2160p30hz", .sname = "2160p30hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 67500, .v_freq = 30000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840, .h_total = 4400, .h_blank = 560, .h_front = 176, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p60_16x9 = { .vic = HDMI_3840x2160p60_16x9, .name = "3840x2160p60hz", .sname = "2160p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 594000, .timing = { .pixel_freq = 594000, .h_freq = 135000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840, .h_total = 4400, .h_blank = 560, .h_front = 176, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p60_y420_16x9 = { .vic = HDMI_3840x2160p60_16x9_Y420, .name = "3840x2160p60hz420", .sname = "2160p60hz420", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 297000, .timing = { .pixel_freq = 594000, .h_freq = 135000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840 / 2, .h_total = 4400 / 2, .h_blank = 560 / 2, .h_front = 176 / 2, .h_sync = 88 / 2, .h_back = 296 / 2, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p50_16x9 = { .vic = HDMI_3840x2160p50_16x9, .name = "3840x2160p50hz", .sname = "2160p50hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 594000, .timing = { .pixel_freq = 594000, .h_freq = 112500, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840, .h_total = 5280, .h_blank = 1440, .h_front = 1056, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p50_y420_16x9 = { .vic = HDMI_3840x2160p50_16x9_Y420, .name = "3840x2160p50hz420", .sname = "2160p50hz420", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 297000, .timing = { .pixel_freq = 594000, .h_freq = 112500, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840 / 2, .h_total = 5280 / 2, .h_blank = 1440 / 2, .h_front = 1056 / 2, .h_sync = 88 / 2, .h_back = 296 / 2, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p25_16x9 = { .vic = HDMI_3840x2160p25_16x9, .name = "3840x2160p25hz", .sname = "2160p25hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 56250, .v_freq = 25000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840, .h_total = 5280, .h_blank = 1440, .h_front = 1056, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_3840x2160p24_16x9 = { .vic = HDMI_3840x2160p24_16x9, .name = "3840x2160p24hz", .sname = "2160p24hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 54000, .v_freq = 24000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 3840, .h_total = 5500, .h_blank = 1660, .h_front = 1276, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p24_256x135 = { .vic = HDMI_4096x2160p24_256x135, .name = "4096x2160p24hz", .sname = "smpte24hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 54000, .v_freq = 24000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096, .h_total = 5500, .h_blank = 1404, .h_front = 1020, .h_sync = 88, .h_back = 296, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p25_256x135 = { .vic = HDMI_4096x2160p25_256x135, .name = "4096x2160p25hz", .sname = "smpte25hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 56250, .v_freq = 25000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096, .h_total = 5280, .h_blank = 1184, .h_front = 968, .h_sync = 88, .h_back = 128, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p30_256x135 = { .vic = HDMI_4096x2160p30_256x135, .name = "4096x2160p30hz", .sname = "smpte30hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 297000, .timing = { .pixel_freq = 297000, .h_freq = 67500, .v_freq = 30000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096, .h_total = 4400, .h_blank = 304, .h_front = 88, .h_sync = 88, .h_back = 128, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p50_256x135 = { .vic = HDMI_4096x2160p50_256x135, .name = "4096x2160p50hz", .sname = "smpte50hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 594000, .timing = { .pixel_freq = 594000, .h_freq = 112500, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096, .h_total = 5280, .h_blank = 1184, .h_front = 968, .h_sync = 88, .h_back = 128, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p50_y420_256x135 = { .vic = HDMI_4096x2160p50_256x135_Y420, .name = "4096x2160p50hz420", .sname = "smpte50hz420", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 297000, .timing = { .pixel_freq = 594000, .h_freq = 112500, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096 / 2, .h_total = 5280 / 2, .h_blank = 1184 / 2, .h_front = 968 / 2, .h_sync = 88 / 2, .h_back = 128 / 2, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p60_256x135 = { .vic = HDMI_4096x2160p60_256x135, .name = "4096x2160p60hz", .sname = "smpte60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 594000, .timing = { .pixel_freq = 594000, .h_freq = 135000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096, .h_total = 4400, .h_blank = 304, .h_front = 88, .h_sync = 88, .h_back = 128, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_4096x2160p60_y420_256x135 = { .vic = HDMI_4096x2160p60_256x135_Y420, .name = "4096x2160p60hz420", .sname = "smpte60hz420", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 1, .tmds_clk_div40 = 1, .tmds_clk = 297000, .timing = { .pixel_freq = 594000, .h_freq = 135000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 4096 / 2, .h_total = 4400 / 2, .h_blank = 304 / 2, .h_front = 88 / 2, .h_sync = 88 / 2, .h_back = 128 / 2, .v_active = 2160, .v_total = 2250, .v_blank = 90, .v_front = 8, .v_sync = 10, .v_back = 72, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080i60_16x9 = { .vic = HDMI_1920x1080i60_16x9, .name = "1920x1080i60hz", .sname = "1080i60hz", .pixel_repetition_factor = 0, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 33750, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2200, .h_blank = 280, .h_front = 88, .h_sync = 44, .h_back = 148, .v_active = 1080/2, .v_total = 1125, .v_blank = 45/2, .v_front = 2, .v_sync = 5, .v_back = 15, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080i50_16x9 = { .vic = HDMI_1920x1080i50_16x9, .name = "1920x1080i50hz", .sname = "1080i50hz", .pixel_repetition_factor = 0, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 28125, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2640, .h_blank = 720, .h_front = 528, .h_sync = 44, .h_back = 148, .v_active = 1080/2, .v_total = 1125, .v_blank = 45/2, .v_front = 2, .v_sync = 5, .v_back = 15, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080i100_16x9 = { .vic = HDMI_1920x1080i100_16x9, .name = "1920x1080i100hz", .sname = "1080i100hz", .pixel_repetition_factor = 0, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 56250, .v_freq = 100000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2640, .h_blank = 720, .h_front = 528, .h_sync = 44, .h_back = 148, .v_active = 1080/2, .v_total = 1125, .v_blank = 45/2, .v_front = 2, .v_sync = 5, .v_back = 15, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1920x1080i120_16x9 = { .vic = HDMI_1920x1080i120_16x9, .name = "1920x1080i120hz", .sname = "1080i120hz", .pixel_repetition_factor = 0, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 67500, .v_freq = 120000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2200, .h_blank = 280, .h_front = 88, .h_sync = 44, .h_back = 148, .v_active = 1080/2, .v_total = 1125, .v_blank = 45/2, .v_front = 2, .v_sync = 5, .v_back = 15, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1280x720p60_16x9 = { .vic = HDMI_1280x720p60_16x9, .name = "1280x720p60hz", .sname = "720p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 45000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1650, .h_blank = 370, .h_front = 110, .h_sync = 40, .h_back = 220, .v_active = 720, .v_total = 750, .v_blank = 30, .v_front = 5, .v_sync = 5, .v_back = 20, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1280x720p50_16x9 = { .vic = HDMI_1280x720p50_16x9, .name = "1280x720p50hz", .sname = "720p50hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 74250, .timing = { .pixel_freq = 74250, .h_freq = 37500, .v_freq = 50000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1980, .h_blank = 700, .h_front = 440, .h_sync = 40, .h_back = 220, .v_active = 720, .v_total = 750, .v_blank = 30, .v_front = 5, .v_sync = 5, .v_back = 20, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1280x720p100_16x9 = { .vic = HDMI_1280x720p100_16x9, .name = "1280x720p100hz", .sname = "720p100hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 75000, .v_freq = 100000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1980, .h_blank = 700, .h_front = 440, .h_sync = 40, .h_back = 220, .v_active = 720, .v_total = 750, .v_blank = 30, .v_front = 5, .v_sync = 5, .v_back = 20, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_1280x720p120_16x9 = { .vic = HDMI_1280x720p120_16x9, .name = "1280x720p120hz", .sname = "720p120hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 148500, .timing = { .pixel_freq = 148500, .h_freq = 90000, .v_freq = 120000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1650, .h_blank = 370, .h_front = 110, .h_sync = 40, .h_back = 220, .v_active = 720, .v_total = 750, .v_blank = 30, .v_front = 5, .v_sync = 5, .v_back = 20, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_720x480p60_16x9 = { .vic = HDMI_720x480p60_16x9, .name = "720x480p60hz", .sname = "480p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 27000, .timing = { .pixel_freq = 27000, .h_freq = 31469, .v_freq = 59940, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 720, .h_total = 858, .h_blank = 138, .h_front = 16, .h_sync = 62, .h_back = 60, .v_active = 480, .v_total = 525, .v_blank = 45, .v_front = 9, .v_sync = 6, .v_back = 30, .v_sync_ln = 7, }, }; static struct hdmi_format_para fmt_para_720x480p120_16x9 = { .vic = HDMI_720x480p120_16x9, .name = "720x480p120hz", .sname = "480p120hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 54000, .timing = { .pixel_freq = 54000, .h_freq = 62937, .v_freq = 119880, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 720, .h_total = 858, .h_blank = 138, .h_front = 16, .h_sync = 62, .h_back = 60, .v_active = 480, .v_total = 525, .v_blank = 45, .v_front = 9, .v_sync = 6, .v_back = 30, .v_sync_ln = 7, }, }; static struct hdmi_format_para fmt_para_720x480i60_16x9 = { .vic = HDMI_720x480i60_16x9, .name = "720x480i60hz", .sname = "480i60hz", .pixel_repetition_factor = 1, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 27000, .timing = { .pixel_freq = 27000, .h_freq = 15734, .v_freq = 59940, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 1440, .h_total = 1716, .h_blank = 276, .h_front = 38, .h_sync = 124, .h_back = 114, .v_active = 480/2, .v_total = 525, .v_blank = 45/2, .v_front = 4, .v_sync = 3, .v_back = 15, .v_sync_ln = 4, }, }; static struct hdmi_format_para fmt_para_720x576p50_16x9 = { .vic = HDMI_720x576p50_16x9, .name = "720x576p50hz", .sname = "576p50hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 27000, .timing = { .pixel_freq = 27000, .h_freq = 31250, .v_freq = 50000, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 720, .h_total = 864, .h_blank = 144, .h_front = 12, .h_sync = 64, .h_back = 68, .v_active = 576, .v_total = 625, .v_blank = 49, .v_front = 5, .v_sync = 5, .v_back = 39, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_720x576p100_16x9 = { .vic = HDMI_720x576p100_16x9, .name = "720x576p100hz", .sname = "576p100hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 54000, .timing = { .pixel_freq = 54000, .h_freq = 62500, .v_freq = 100000, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 720, .h_total = 864, .h_blank = 144, .h_front = 12, .h_sync = 64, .h_back = 68, .v_active = 576, .v_total = 625, .v_blank = 49, .v_front = 5, .v_sync = 5, .v_back = 39, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_720x576i50_16x9 = { .vic = HDMI_720x576i50_16x9, .name = "720x576i50hz", .sname = "576i50hz", .pixel_repetition_factor = 1, .progress_mode = 0, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 27000, .timing = { .pixel_freq = 27000, .h_freq = 15625, .v_freq = 50000, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 1440, .h_total = 1728, .h_blank = 288, .h_front = 24, .h_sync = 126, .h_back = 138, .v_active = 576/2, .v_total = 625, .v_blank = 49/2, .v_front = 2, .v_sync = 3, .v_back = 19, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_non_hdmi_fmt = { .vic = HDMI_unkown, .name = "invalid", .sname = "invalid", }; static struct hdmi_format_para fmt_para_vesa_480x320p60_4x3 = { .vic = HDMIV_480x320p60hz, .name = "480x320p60hz", .sname = "480x320p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 25200, .timing = { .pixel_freq = 25200, .h_freq = 31500, .v_freq = 60000, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 480, .h_total = 800, .h_blank = 320, .h_front = 120, .h_sync = 100, .h_back = 100, .v_active = 320, .v_total = 525, .v_blank = 205, .v_front = 8, .v_sync = 8, .v_back = 189, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_640x480p60_4x3 = { .vic = HDMIV_640x480p60hz, .name = "640x480p60hz", .sname = "640x480p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 25175, .timing = { .pixel_freq = 25175, .h_freq = 26218, .v_freq = 59940, .vsync_polarity = 0, .hsync_polarity = 0, .h_active = 640, .h_total = 800, .h_blank = 160, .h_front = 16, .h_sync = 96, .h_back = 48, .v_active = 480, .v_total = 525, .v_blank = 45, .v_front = 10, .v_sync = 2, .v_back = 33, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_800x480p60_4x3 = { .vic = HDMIV_800x480p60hz, .name = "800x480p60hz", .sname = "800x480p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 29760, .timing = { .pixel_freq = 29760, .h_freq = 30000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 800, .h_total = 992, .h_blank = 192, .h_front = 24, .h_sync = 72, .h_back = 96, .v_active = 480, .v_total = 500, .v_blank = 20, .v_front = 3, .v_sync = 7, .v_back = 10, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_800x600p60_4x3 = { .vic = HDMIV_800x600p60hz, .name = "800x600p60hz", .sname = "800x600p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 40000, .timing = { .pixel_freq = 66666, .h_freq = 37879, .v_freq = 60317, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 800, .h_total = 1056, .h_blank = 256, .h_front = 40, .h_sync = 128, .h_back = 88, .v_active = 600, .v_total = 628, .v_blank = 28, .v_front = 1, .v_sync = 4, .v_back = 23, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_852x480p60_213x120 = { .vic = HDMIV_852x480p60hz, .name = "852x480p60hz", .sname = "852x480p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 30240, .timing = { .pixel_freq = 30240, .h_freq = 31900, .v_freq = 59960, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 852, .h_total = 948, .h_blank = 96, .h_front = 40, .h_sync = 16, .h_back = 40, .v_active = 480, .v_total = 532, .v_blank = 52, .v_front = 10, .v_sync = 2, .v_back = 40, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_854x480p60_427x240 = { .vic = HDMIV_854x480p60hz, .name = "854x480p60hz", .sname = "854x480p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 30240, .timing = { .pixel_freq = 30240, .h_freq = 31830, .v_freq = 59950, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 854, .h_total = 950, .h_blank = 96, .h_front = 40, .h_sync = 16, .h_back = 40, .v_active = 480, .v_total = 531, .v_blank = 51, .v_front = 10, .v_sync = 2, .v_back = 39, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1024x600p60_17x10 = { .vic = HDMIV_1024x600p60hz, .name = "1024x600p60hz", .sname = "1024x600p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 50400, .timing = { .pixel_freq = 50400, .h_freq = 38280, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1024, .h_total = 1344, .h_blank = 320, .h_front = 24, .h_sync = 136, .h_back = 160, .v_active = 600, .v_total = 638, .v_blank = 38, .v_front = 3, .v_sync = 6, .v_back = 29, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1024x768p60_4x3 = { .vic = HDMIV_1024x768p60hz, .name = "1024x768p60hz", .sname = "1024x768p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 79500, .timing = { .pixel_freq = 79500, .h_freq = 48360, .v_freq = 60004, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1024, .h_total = 1344, .h_blank = 320, .h_front = 24, .h_sync = 136, .h_back = 160, .v_active = 768, .v_total = 806, .v_blank = 38, .v_front = 3, .v_sync = 6, .v_back = 29, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1152x864p75_4x3 = { .vic = HDMIV_1152x864p75hz, .name = "1152x864p75hz", .sname = "1152x864p75hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 108000, .timing = { .pixel_freq = 108000, .h_freq = 67500, .v_freq = 75000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1152, .h_total = 1600, .h_blank = 448, .h_front = 64, .h_sync = 128, .h_back = 256, .v_active = 864, .v_total = 900, .v_blank = 36, .v_front = 1, .v_sync = 3, .v_back = 32, }, }; static struct hdmi_format_para fmt_para_vesa_1280x600p60_32x15 = { #if 0 /* TODO */ .vic = HDMIV_1280x600p60hz, .name = "1280x600p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = , .timing = { .pixel_freq = , .h_freq = , .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = , .h_blank = , .h_front = , .h_sync = , .h_back = , .v_active = 600, .v_total = , .v_blank = , .v_front = , .v_sync = , .v_back = , .v_sync_ln = 1, }, #endif }; static struct hdmi_format_para fmt_para_vesa_1280x768p60_5x3 = { .vic = HDMIV_1280x768p60hz, .name = "1280x768p60hz", .sname = "1280x768p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 79500, .timing = { .pixel_freq = 79500, .h_freq = 47776, .v_freq = 59870, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1664, .h_blank = 384, .h_front = 64, .h_sync = 128, .h_back = 192, .v_active = 768, .v_total = 798, .v_blank = 30, .v_front = 3, .v_sync = 7, .v_back = 20, }, }; static struct hdmi_format_para fmt_para_vesa_1280x800p60_8x5 = { .vic = HDMIV_1280x800p60hz, .name = "1280x800p60hz", .sname = "1280x800p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 83500, .timing = { .pixel_freq = 83500, .h_freq = 49380, .v_freq = 59910, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1440, .h_blank = 160, .h_front = 48, .h_sync = 32, .h_back = 80, .v_active = 800, .v_total = 823, .v_blank = 23, .v_front = 3, .v_sync = 6, .v_back = 14, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1280x960p60_4x3 = { .vic = HDMIV_1280x960p60hz, .name = "1280x960p60hz", .sname = "1280x960p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 108000, .timing = { .pixel_freq = 108000, .h_freq = 60000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1440, .h_blank = 520, .h_front = 96, .h_sync = 112, .h_back = 312, .v_active = 960, .v_total = 1000, .v_blank = 40, .v_front = 1, .v_sync = 3, .v_back = 36, }, }; static struct hdmi_format_para fmt_para_vesa_1280x1024p60_5x4 = { .vic = HDMIV_1280x1024p60hz, .name = "1280x1024p60hz", .sname = "1280x1024p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 108000, .timing = { .pixel_freq = 108000, .h_freq = 64080, .v_freq = 60020, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1280, .h_total = 1688, .h_blank = 408, .h_front = 48, .h_sync = 112, .h_back = 248, .v_active = 1024, .v_total = 1066, .v_blank = 42, .v_front = 1, .v_sync = 3, .v_back = 38, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1360x768p60_16x9 = { .vic = HDMIV_1360x768p60hz, .name = "1360x768p60hz", .sname = "1360x768p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 855000, .timing = { .pixel_freq = 855000, .h_freq = 47700, .v_freq = 60015, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1360, .h_total = 1792, .h_blank = 432, .h_front = 64, .h_sync = 112, .h_back = 256, .v_active = 768, .v_total = 795, .v_blank = 27, .v_front = 3, .v_sync = 6, .v_back = 18, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1366x768p60_16x9 = { .vic = HDMIV_1366x768p60hz, .name = "1366x768p60hz", .sname = "1366x768p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 85500, .timing = { .pixel_freq = 85500, .h_freq = 47880, .v_freq = 59790, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1366, .h_total = 1792, .h_blank = 426, .h_front = 70, .h_sync = 143, .h_back = 213, .v_active = 768, .v_total = 798, .v_blank = 30, .v_front = 3, .v_sync = 3, .v_back = 24, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1400x1050p60_4x3 = { .vic = HDMIV_1400x1050p60hz, .name = "1400x1050p60hz", .sname = "1400x1050p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 121750, .timing = { .pixel_freq = 121750, .h_freq = 65317, .v_freq = 59978, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1400, .h_total = 1864, .h_blank = 464, .h_front = 88, .h_sync = 144, .h_back = 232, .v_active = 1050, .v_total = 1089, .v_blank = 39, .v_front = 3, .v_sync = 4, .v_back = 32, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1440x900p60_8x5 = { .vic = HDMIV_1440x900p60hz, .name = "1440x900p60hz", .sname = "1440x900p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 106500, .timing = { .pixel_freq = 106500, .h_freq = 56040, .v_freq = 59887, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1440, .h_total = 1904, .h_blank = 464, .h_front = 80, .h_sync = 152, .h_back = 232, .v_active = 900, .v_total = 934, .v_blank = 34, .v_front = 3, .v_sync = 6, .v_back = 25, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1440x2560p60_9x16 = { .vic = HDMIV_1440x2560p60hz, .name = "1440x2560p60hz", .sname = "1440x2560p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 244850, .timing = { .pixel_freq = 244850, .h_freq = 155760, .v_freq = 59999, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1440, .h_total = 1572, .h_blank = 132, .h_front = 64, .h_sync = 4, .h_back = 64, .v_active = 2560, .v_total = 2596, .v_blank = 36, .v_front = 16, .v_sync = 4, .v_back = 16, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1440x2560p70_9x16 = { .vic = HDMIV_1440x2560p70hz, .name = "1440x2560p70hz", .sname = "1440x2560p70hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 280000, .timing = { .pixel_freq = 280000, .h_freq = 180320, .v_freq = 70100, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1440, .h_total = 1550, .h_blank = 110, .h_front = 68, .h_sync = 16, .h_back = 26, .v_active = 2560, .v_total = 2576, .v_blank = 16, .v_front = 6, .v_sync = 6, .v_back = 4, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1600x900p60_16x9 = { .vic = HDMIV_1600x900p60hz, .name = "1600x900p60hz", .sname = "1600x900p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 108000, .timing = { .pixel_freq = 108000, .h_freq = 60000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1600, .h_total = 1800, .h_blank = 200, .h_front = 24, .h_sync = 80, .h_back = 96, .v_active = 900, .v_total = 1000, .v_blank = 100, .v_front = 1, .v_sync = 3, .v_back = 96, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1600x1200p60_4x3 = { .vic = HDMIV_1600x1200p60hz, .name = "1600x1200p60hz", .sname = "1600x1200p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 162000, .timing = { .pixel_freq = 162000, .h_freq = 75000, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1600, .h_total = 2160, .h_blank = 560, .h_front = 64, .h_sync = 192, .h_back = 304, .v_active = 1200, .v_total = 1250, .v_blank = 50, .v_front = 1, .v_sync = 3, .v_back = 46, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1680x1050p60_8x5 = { .vic = HDMIV_1680x1050p60hz, .name = "1680x1050p60hz", .sname = "1680x1050p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 146250, .timing = { .pixel_freq = 146250, .h_freq = 65340, .v_freq = 59954, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1680, .h_total = 2240, .h_blank = 560, .h_front = 104, .h_sync = 176, .h_back = 280, .v_active = 1050, .v_total = 1089, .v_blank = 39, .v_front = 3, .v_sync = 6, .v_back = 30, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_1920x1200p60_8x5 = { .vic = HDMIV_1920x1200p60hz, .name = "1920x1200p60hz", .sname = "1920x1200p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 154000, .timing = { .pixel_freq = 154000, .h_freq = 74040, .v_freq = 60000, .vsync_polarity = 0, .hsync_polarity = 1, .h_active = 1920, .h_total = 2080, .h_blank = 160, .h_front = 48, .h_sync = 32, .h_back = 80, .v_active = 1200, .v_total = 1235, .v_blank = 35, .v_front = 3, .v_sync = 6, .v_back = 26, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_2160x1200p90_9x5 = { .vic = HDMIV_2160x1200p90hz, .name = "2160x1200p90hz", .sname = "2160x1200p90hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 268550, .timing = { .pixel_freq = 268550, .h_freq = 109080, .v_freq = 90000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 2160, .h_total = 2462, .h_blank = 302, .h_front = 190, .h_sync = 32, .h_back = 80, .v_active = 1200, .v_total = 1212, .v_blank = 12, .v_front = 6, .v_sync = 3, .v_back = 3, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_2560x1080p60_64x27 = { .vic = HDMIV_2560x1080p60hz, .name = "2560x1080p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 185580, .timing = { .pixel_freq = 185580, .h_freq = 66659, .v_freq = 60000, .vsync_polarity = 0, .hsync_polarity = 1, .h_active = 2560, .h_total = 2784, .h_blank = 224, .h_front = 64, .h_sync = 64, .h_back = 96, .v_active = 1080, .v_total = 1111, .v_blank = 31, .v_front = 3, .v_sync = 10, .v_back = 18, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_2560x1440p60_16x9 = { .vic = HDMIV_2560x1440p60hz, .name = "2560x1440p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 241500, .timing = { .pixel_freq = 241500, .h_freq = 98700, .v_freq = 60000, .vsync_polarity = 0, .hsync_polarity = 1, .h_active = 2560, .h_total = 2720, .h_blank = 160, .h_front = 48, .h_sync = 32, .h_back = 80, .v_active = 1440, .v_total = 1481, .v_blank = 41, .v_front = 2, .v_sync = 5, .v_back = 34, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_2560x1600p60_8x5 = { .vic = HDMIV_2560x1600p60hz, .name = "2560x1600p60hz", .sname = "2560x1600p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 268500, .timing = { .pixel_freq = 268500, .h_freq = 98700, .v_freq = 60000, .vsync_polarity = 0, .hsync_polarity = 1, .h_active = 2560, .h_total = 2720, .h_blank = 160, .h_front = 48, .h_sync = 32, .h_back = 80, .v_active = 1600, .v_total = 1646, .v_blank = 46, .v_front = 3, .v_sync = 6, .v_back = 38, .v_sync_ln = 1, }, }; static struct hdmi_format_para fmt_para_vesa_3440x1440p60_43x18 = { #if 0 /* TODO */ .vic = HDMIV_3440x1440p60hz, .name = "3440x1440p60hz", .pixel_repetition_factor = 0, .progress_mode = 1, .scrambler_en = 0, .tmds_clk_div40 = 0, .tmds_clk = 193250, .timing = { .pixel_freq = 193250, .h_freq = 74700, .v_freq = 60000, .vsync_polarity = 1, .hsync_polarity = 1, .h_active = 1920, .h_total = 2592, .h_blank = 672, .h_front = 136, .h_sync = 200, .h_back = 336, .v_active = 1200, .v_total = 1245, .v_blank = 45, .v_front = 3, .v_sync = 6, .v_back = 36, .v_sync_ln = 1, }, #endif }; static struct hdmi_format_para *all_fmt_paras[] = { &fmt_para_3840x2160p60_y420_16x9, &fmt_para_3840x2160p60_16x9, &fmt_para_3840x2160p50_y420_16x9, &fmt_para_3840x2160p50_16x9, &fmt_para_3840x2160p30_16x9, &fmt_para_3840x2160p25_16x9, &fmt_para_3840x2160p24_16x9, &fmt_para_4096x2160p24_256x135, &fmt_para_4096x2160p25_256x135, &fmt_para_4096x2160p30_256x135, &fmt_para_4096x2160p50_y420_256x135, &fmt_para_4096x2160p50_256x135, &fmt_para_4096x2160p60_y420_256x135, &fmt_para_4096x2160p60_256x135, &fmt_para_1920x1080p50_16x9, &fmt_para_1920x1080p60_16x9, &fmt_para_1920x1080p30_16x9, &fmt_para_1920x1080p25_16x9, &fmt_para_1920x1080p24_16x9, &fmt_para_1920x1080p100_16x9, &fmt_para_1920x1080p120_16x9, &fmt_para_1920x1080i60_16x9, &fmt_para_1920x1080i50_16x9, &fmt_para_1920x1080i100_16x9, &fmt_para_1920x1080i120_16x9, &fmt_para_1280x720p60_16x9, &fmt_para_1280x720p50_16x9, &fmt_para_1280x720p100_16x9, &fmt_para_1280x720p120_16x9, &fmt_para_720x480p60_16x9, &fmt_para_720x480p120_16x9, &fmt_para_720x480i60_16x9, &fmt_para_720x576p50_16x9, &fmt_para_720x576p100_16x9, &fmt_para_720x576i50_16x9, &fmt_para_vesa_640x480p60_4x3, &fmt_para_vesa_800x480p60_4x3, &fmt_para_vesa_800x600p60_4x3, &fmt_para_vesa_852x480p60_213x120, &fmt_para_vesa_854x480p60_427x240, &fmt_para_vesa_1024x600p60_17x10, &fmt_para_vesa_1024x768p60_4x3, &fmt_para_vesa_1152x864p75_4x3, &fmt_para_vesa_1280x600p60_32x15, &fmt_para_vesa_1280x768p60_5x3, &fmt_para_vesa_1280x800p60_8x5, &fmt_para_vesa_1280x960p60_4x3, &fmt_para_vesa_1280x1024p60_5x4, &fmt_para_vesa_1360x768p60_16x9, &fmt_para_vesa_1366x768p60_16x9, &fmt_para_vesa_1400x1050p60_4x3, &fmt_para_vesa_1440x900p60_8x5, &fmt_para_vesa_1440x2560p60_9x16, &fmt_para_vesa_1440x2560p70_9x16, &fmt_para_vesa_1600x900p60_16x9, &fmt_para_vesa_1600x1200p60_4x3, &fmt_para_vesa_1680x1050p60_8x5, &fmt_para_vesa_1920x1200p60_8x5, &fmt_para_vesa_2160x1200p90_9x5, &fmt_para_vesa_2560x1080p60_64x27, &fmt_para_vesa_2560x1440p60_16x9, &fmt_para_vesa_2560x1600p60_8x5, &fmt_para_vesa_3440x1440p60_43x18, &fmt_para_vesa_480x320p60_4x3, &fmt_para_non_hdmi_fmt, NULL, }; struct hdmi_format_para *hdmi_get_fmt_paras(enum hdmi_vic vic) { int i; for (i = 0; all_fmt_paras[i] != NULL; i++) { if (vic == all_fmt_paras[i]->vic) return all_fmt_paras[i]; } return NULL; } static struct parse_cd parse_cd_[] = { {HDMI_COLOR_DEPTH_24B, "8bit",}, {HDMI_COLOR_DEPTH_30B, "10bit"}, {HDMI_COLOR_DEPTH_36B, "12bit"}, {HDMI_COLOR_DEPTH_48B, "16bit"}, }; static struct parse_cs parse_cs_[] = { {HDMI_COLOR_FORMAT_RGB, "rgb",}, {HDMI_COLOR_FORMAT_444, "444",}, {HDMI_COLOR_FORMAT_422, "422",}, {HDMI_COLOR_FORMAT_420, "420",}, }; static struct parse_cr parse_cr_[] = { {HDMI_COLOR_RANGE_LIM, "limit",}, {HDMI_COLOR_RANGE_FUL, "full",}, }; /* parse the string from "hdmitx output FORMAT" */ void hdmi_parse_attr(struct hdmi_format_para *para, char const *name) { int i; /* parse color depth */ for (i = 0; i < sizeof(parse_cd_) / sizeof(struct parse_cd); i++) { if (strstr(name, parse_cd_[i].name)) { para->cd = parse_cd_[i].cd; break; } } /* set default value */ if (i == sizeof(parse_cd_) / sizeof(struct parse_cd)) para->cd = HDMI_COLOR_DEPTH_24B; /* parse color space */ for (i = 0; i < sizeof(parse_cs_) / sizeof(struct parse_cs); i++) { if (strstr(name, parse_cs_[i].name)) { para->cs = parse_cs_[i].cs; break; } } /* set default value */ if (i == sizeof(parse_cs_) / sizeof(struct parse_cs)) para->cs = HDMI_COLOR_FORMAT_444; /* parse color range */ for (i = 0; i < sizeof(parse_cr_) / sizeof(struct parse_cr); i++) { if (strstr(name, parse_cr_[i].name)) { para->cr = parse_cr_[i].cr; break; } } /* set default value */ if (i == sizeof(parse_cr_) / sizeof(struct parse_cr)) para->cr = HDMI_COLOR_RANGE_FUL; } /* * Paramter 'name' can be 1080p60hz, or 1920x1080p60hz * or 3840x2160p60hz, 2160p60hz * or 3840x2160p60hz420, 2160p60hz420 (Y420 mode) */ enum hdmi_vic hdmi_get_fmt_vic(char const *name) { int i; char *lname; enum hdmi_vic vic = HDMI_unkown; struct hdmi_format_para *para = NULL; if (!name) return HDMI_unkown; for (i = 0; all_fmt_paras[i] != NULL; i++) { lname = all_fmt_paras[i]->name; if (lname && (strncmp(name, lname, strlen(lname)) == 0)) { vic = all_fmt_paras[i]->vic; break; } lname = all_fmt_paras[i]->sname; if (lname && (strncmp(name, lname, strlen(lname)) == 0)) { vic = all_fmt_paras[i]->vic; break; } } if ((vic != HDMI_unkown) && (all_fmt_paras[i] != NULL)) { para = all_fmt_paras[i]; memset(¶->ext_name[0], 0, sizeof(para->ext_name)); memcpy(¶->ext_name[0], name, strlen(name)); hdmi_parse_attr(para, name); } return vic; } struct hdmi_format_para *hdmi_match_dtd_paras(struct dtd *t) { int i; if (!t) return NULL; for (i = 0; all_fmt_paras[i]; i++) { if ((abs(all_fmt_paras[i]->timing.pixel_freq / 10 - t->pixel_clock) <= (t->pixel_clock + 1000) / 1000) && (t->h_active == all_fmt_paras[i]->timing.h_active) && (t->h_blank == all_fmt_paras[i]->timing.h_blank) && (t->v_active == all_fmt_paras[i]->timing.v_active) && (t->v_blank == all_fmt_paras[i]->timing.v_blank) && (t->h_sync_offset == all_fmt_paras[i]->timing.h_front) && (t->h_sync == all_fmt_paras[i]->timing.h_sync) && (t->v_sync_offset == all_fmt_paras[i]->timing.v_front) && (t->v_sync == all_fmt_paras[i]->timing.v_sync) ) return all_fmt_paras[i]; } return NULL; }