From c5dd5d0f3c93acde86ecf594297a7d4e561bf861 Mon Sep 17 00:00:00 2001 From: Chris KIM Date: Thu, 26 Dec 2019 14:05:22 +0900 Subject: [PATCH] ODROID: media: hdmitx: add new hdmi resolutions Change-Id: Idf6a74dcb73c3c6a03fb2cdf41219a2acfb31ccb --- .../vout/hdmitx/hdmi_common/hdmi_parameters.c | 169 ++++++++++++++++++ .../vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c | 2 + .../vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c | 2 + .../vout/hdmitx/hdmi_tx_20/hdmi_tx_video.c | 22 +++ .../vout/hdmitx/hdmi_tx_20/hw/enc_cfg_hw.c | 55 ++++++ .../media/vout/hdmitx/hdmi_tx_20/hw/hw_clk.c | 10 ++ .../amlogic/media/vout/hdmi_tx/hdmi_common.h | 4 +- 7 files changed, 263 insertions(+), 1 deletion(-) diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_common/hdmi_parameters.c b/drivers/amlogic/media/vout/hdmitx/hdmi_common/hdmi_parameters.c index 1cf6facc91ed..c4391c05c46b 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_common/hdmi_parameters.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_common/hdmi_parameters.c @@ -1507,9 +1507,58 @@ static struct hdmi_format_para fmt_para_2560x1080p60_64x27 = { /* * VESA timing describe */ +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, + .frac_freq = 25200, + .h_freq = 31500, + .v_freq = 60000, + .vsync_polarity = 0, /* -VSync */ + .hsync_polarity = 0, /* -HSync */ + .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, + }, + .hdmitx_vinfo = { + .name = "480x320p60hz", + .mode = VMODE_HDMI, + .width = 480, + .height = 320, + .field_height = 320, + .aspect_ratio_num = 4, + .aspect_ratio_den = 3, + .sync_duration_num = 60, + .sync_duration_den = 1, + .video_clk = 25200000, + .htotal = 800, + .vtotal = 525, + .viu_color_fmt = COLOR_FMT_YUV444, + .viu_mux = VIU_MUX_ENCP, + }, +}; + 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, @@ -1555,9 +1604,58 @@ static struct hdmi_format_para fmt_para_vesa_640x480p60_4x3 = { }, }; +static struct hdmi_format_para fmt_para_vesa_480x800p60_4x3 = { + .vic = HDMIV_480x800p60hz, + .name = "480x800p60hz", + .sname = "480x800p60hz", + .pixel_repetition_factor = 0, + .progress_mode = 1, + .scrambler_en = 0, + .tmds_clk_div40 = 0, + .tmds_clk = 32000, + .timing = { + .pixel_freq = 32000, + .frac_freq = 32000, + .h_freq = 52600, + .v_freq = 62300, + .vsync_polarity = 0, + .hsync_polarity = 0, + .h_active = 480, + .h_total = 608, + .h_blank = 128, + .h_front = 40, + .h_sync = 48, + .h_back = 40, + .v_active = 800, + .v_total = 845, + .v_blank = 45, + .v_front = 13, + .v_sync = 3, + .v_back = 29, + .v_sync_ln = 1, + }, + .hdmitx_vinfo = { + .name = "480x800p60hz", + .mode = VMODE_HDMI, + .width = 480, + .height = 800, + .field_height = 800, + .aspect_ratio_num = 4, + .aspect_ratio_den = 3, + .sync_duration_num = 60, + .sync_duration_den = 1, + .video_clk = 32000000, + .htotal = 608, + .vtotal = 845, + .viu_color_fmt = COLOR_FMT_YUV444, + .viu_mux = VIU_MUX_ENCP, + }, +}; + 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, @@ -1606,6 +1704,7 @@ static struct hdmi_format_para fmt_para_vesa_800x480p60_4x3 = { 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, @@ -1654,6 +1753,7 @@ static struct hdmi_format_para fmt_para_vesa_800x600p60_4x3 = { 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, @@ -1702,6 +1802,7 @@ static struct hdmi_format_para fmt_para_vesa_852x480p60_213x120 = { 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, @@ -1750,6 +1851,7 @@ static struct hdmi_format_para fmt_para_vesa_854x480p60_427x240 = { 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, @@ -1798,6 +1900,7 @@ static struct hdmi_format_para fmt_para_vesa_1024x600p60_17x10 = { 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, @@ -1846,6 +1949,7 @@ static struct hdmi_format_para fmt_para_vesa_1024x768p60_4x3 = { 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, @@ -1893,6 +1997,7 @@ static struct hdmi_format_para fmt_para_vesa_1152x864p75_4x3 = { 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, @@ -1940,6 +2045,7 @@ static struct hdmi_format_para fmt_para_vesa_1280x768p60_5x3 = { 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, @@ -1988,6 +2094,7 @@ static struct hdmi_format_para fmt_para_vesa_1280x800p60_8x5 = { 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, @@ -2035,6 +2142,7 @@ static struct hdmi_format_para fmt_para_vesa_1280x960p60_4x3 = { 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, @@ -2083,6 +2191,7 @@ static struct hdmi_format_para fmt_para_vesa_1280x1024p60_5x4 = { 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, @@ -2131,6 +2240,7 @@ static struct hdmi_format_para fmt_para_vesa_1360x768p60_16x9 = { 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, @@ -2179,6 +2289,7 @@ static struct hdmi_format_para fmt_para_vesa_1366x768p60_16x9 = { 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, @@ -2227,6 +2338,7 @@ static struct hdmi_format_para fmt_para_vesa_1400x1050p60_4x3 = { 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, @@ -2324,6 +2436,7 @@ static struct hdmi_format_para fmt_para_vesa_1440x2560p60_9x16 = { 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, @@ -2372,6 +2485,7 @@ static struct hdmi_format_para fmt_para_vesa_1600x900p60_16x9 = { 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, @@ -2420,6 +2534,7 @@ static struct hdmi_format_para fmt_para_vesa_1600x1200p60_4x3 = { 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, @@ -2468,6 +2583,7 @@ static struct hdmi_format_para fmt_para_vesa_1680x1050p60_8x5 = { 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, @@ -2516,6 +2632,7 @@ static struct hdmi_format_para fmt_para_vesa_1920x1200p60_8x5 = { 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, @@ -2564,6 +2681,7 @@ static struct hdmi_format_para fmt_para_vesa_2160x1200p90_9x5 = { 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, @@ -2630,6 +2748,54 @@ static struct hdmi_format_para fmt_para_custombuilt = { }, }; +static struct hdmi_format_para fmt_para_vesa_2560x1440p60_16x9 = { + .vic = HDMIV_2560x1440p60hz, + .name = "2560x1440p60hz", + .sname = "2560x1440p60hz", + .pixel_repetition_factor = 0, + .progress_mode = 1, + .scrambler_en = 0, + .tmds_clk_div40 = 0, + .tmds_clk = 241500, + .timing = { + .pixel_freq = 241500, + .frac_freq = 241500, + .h_freq = 88790, + .v_freq = 60000, + .vsync_polarity = 1, + .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, + }, + .hdmitx_vinfo = { + .name = "2560x1440p60hz", + .mode = VMODE_HDMI, + .width = 2560, + .height = 1440, + .field_height = 1440, + .aspect_ratio_num = 16, + .aspect_ratio_den = 9, + .sync_duration_num = 60, + .sync_duration_den = 1, + .video_clk = 241500000, + .htotal = 2720, + .vtotal = 1481, + .viu_color_fmt = COLOR_FMT_YUV444, + .viu_mux = VIU_MUX_ENCP, + }, +}; + static struct hdmi_format_para *all_fmt_paras[] = { &fmt_para_3840x2160p60_16x9, &fmt_para_3840x2160p50_16x9, @@ -2660,7 +2826,9 @@ static struct hdmi_format_para *all_fmt_paras[] = { &fmt_para_4096x2160p50_256x135_y420, &fmt_para_2560x1080p50_64x27, &fmt_para_2560x1080p60_64x27, + &fmt_para_vesa_480x320p60_4x3, &fmt_para_vesa_640x480p60_4x3, + &fmt_para_vesa_480x800p60_4x3, &fmt_para_vesa_800x480p60_4x3, &fmt_para_vesa_800x600p60_4x3, &fmt_para_vesa_852x480p60_213x120, @@ -2683,6 +2851,7 @@ static struct hdmi_format_para *all_fmt_paras[] = { &fmt_para_vesa_1920x1200p60_8x5, &fmt_para_vesa_2160x1200p90_9x5, &fmt_para_vesa_2560x1600p60_8x5, + &fmt_para_vesa_2560x1440p60_16x9, &fmt_para_custombuilt, &fmt_para_null_hdmi_fmt, &fmt_para_non_hdmi_fmt, diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c index 99b7d18e5a82..e43210ddd90b 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_edid.c @@ -2539,7 +2539,9 @@ static struct dispmode_vic dispmode_vic_tab[] = { {"smpte60hz", HDMI_4096x2160p60_256x135}, {"2160p60hz", HDMI_4k2k_60}, {"2160p50hz", HDMI_4k2k_50}, + {"480x320p60hz", HDMIV_480x320p60hz}, {"640x480p60hz", HDMIV_640x480p60hz}, + {"480x800p60hz", HDMIV_480x800p60hz}, {"800x480p60hz", HDMIV_800x480p60hz}, {"800x600p60hz", HDMIV_800x600p60hz}, {"852x480p60hz", HDMIV_852x480p60hz}, diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c index 55f02586fe7d..d7b0c7f2ad31 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c @@ -2378,7 +2378,9 @@ const char *disp_mode_t[] = { "2160p50hz", "2160p60hz", /* VESA modes */ + "480x320p60hz", "640x480p60hz", + "480x800p60hz", "800x480p60hz", "800x600p60hz", "852x480p60hz", diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_video.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_video.c index 92fd05285b47..d8ff41c4d5ce 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_video.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_video.c @@ -39,6 +39,17 @@ static void hdmi_set_vend_spec_infofram(struct hdmitx_dev *hdev, enum hdmi_vic VideoCode); static struct hdmitx_vidpara hdmi_tx_video_params[] = { + { + .VIC = HDMIV_480x320p60hz, + .color_prefer = COLORSPACE_RGB444, + .color_depth = COLORDEPTH_24B, + .bar_info = B_BAR_VERT_HORIZ, + .repeat_time = NO_REPEAT, + .aspect_ratio = ASPECT_RATIO_SAME_AS_SOURCE, + .cc = CC_ITU709, + .ss = SS_SCAN_UNDER, + .sc = SC_SCALE_HORIZ_VERT, + }, { .VIC = HDMI_640x480p60, .color_prefer = COLORSPACE_RGB444, @@ -50,6 +61,17 @@ static struct hdmitx_vidpara hdmi_tx_video_params[] = { .ss = SS_SCAN_UNDER, .sc = SC_SCALE_HORIZ_VERT, }, + { + .VIC = HDMIV_480x800p60hz, + .color_prefer = COLORSPACE_RGB444, + .color_depth = COLORDEPTH_24B, + .bar_info = B_BAR_VERT_HORIZ, + .repeat_time = NO_REPEAT, + .aspect_ratio = ASPECT_RATIO_SAME_AS_SOURCE, + .cc = CC_ITU709, + .ss = SS_SCAN_UNDER, + .sc = SC_SCALE_HORIZ_VERT, + }, { .VIC = HDMI_480p60, .color_prefer = COLORSPACE_RGB444, diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/enc_cfg_hw.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/enc_cfg_hw.c index a482425b7765..24139bdcd22c 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/enc_cfg_hw.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/enc_cfg_hw.c @@ -711,6 +711,32 @@ static const struct reg_s tvregs_2560x1080p60hz[] = { {MREG_END_MARKER, 0}, }; +static const struct reg_s tvregs_vesa_480x320p60hz[] = { + {P_VENC_VDAC_SETTING, 0xff,}, + {P_ENCP_VIDEO_EN, 0,}, + {P_ENCI_VIDEO_EN, 0,}, + + {P_ENCP_VIDEO_MODE, 0x4040,}, + {P_ENCP_VIDEO_MODE_ADV, 0x18,}, + + {P_ENCP_VIDEO_MAX_PXCNT, 0x31F,}, + {P_ENCP_VIDEO_MAX_LNCNT, 0x20C,}, + {P_ENCP_VIDEO_HAVON_BEGIN, 0x64,}, + {P_ENCP_VIDEO_HAVON_END, 0x243,}, + {P_ENCP_VIDEO_VAVON_BLINE, 0xBD,}, + {P_ENCP_VIDEO_VAVON_ELINE, 0x1FC,}, + {P_ENCP_VIDEO_HSO_BEGIN, 0x0,}, + {P_ENCP_VIDEO_HSO_END, 0x64,}, + {P_ENCP_VIDEO_VSO_BEGIN, 0x1E,}, + {P_ENCP_VIDEO_VSO_END, 0x32,}, + {P_ENCP_VIDEO_VSO_BLINE, 0x0,}, + {P_ENCP_VIDEO_VSO_ELINE, 0x8,}, + + {P_ENCP_VIDEO_EN, 1,}, + {P_ENCI_VIDEO_EN, 0,}, + {MREG_END_MARKER, 0} +}; + static const struct reg_s tvregs_vesa_640x480p60hz[] = { {P_VENC_VDAC_SETTING, 0xff,}, {P_ENCP_VIDEO_EN, 0,}, @@ -734,6 +760,33 @@ static const struct reg_s tvregs_vesa_640x480p60hz[] = { {MREG_END_MARKER, 0} }; +static const struct reg_s tvregs_vesa_480x800p60hz[] = { + {P_ENCP_VIDEO_EN, 0}, + {P_ENCI_VIDEO_EN, 0}, + + {P_ENCP_VIDEO_MODE, 0x4040}, + {P_ENCP_VIDEO_MODE_ADV, 0x18}, + + {P_ENCP_VIDEO_MAX_PXCNT, 0x25F}, + {P_ENCP_VIDEO_MAX_LNCNT, 0x34C}, + + {P_ENCP_VIDEO_HAVON_BEGIN, 0x28}, + {P_ENCP_VIDEO_HAVON_END, 0x207}, + {P_ENCP_VIDEO_VAVON_BLINE, 0x1D}, + {P_ENCP_VIDEO_VAVON_ELINE, 0x33C}, + + {P_ENCP_VIDEO_HSO_BEGIN, 0x0}, + {P_ENCP_VIDEO_HSO_END, 0x30}, + {P_ENCP_VIDEO_VSO_BEGIN, 0x1E}, + {P_ENCP_VIDEO_VSO_END, 0x32}, + {P_ENCP_VIDEO_VSO_BLINE, 0x0}, + {P_ENCP_VIDEO_VSO_ELINE, 0x3}, + + {P_ENCP_VIDEO_EN, 1}, + {P_ENCI_VIDEO_EN, 0}, + {MREG_END_MARKER, 0}, +}; + static const struct reg_s tvregs_vesa_800x600p60hz[] = { {P_VENC_VDAC_SETTING, 0xff,}, {P_ENCP_VIDEO_EN, 0,}, @@ -1426,7 +1479,9 @@ static struct vic_tvregs_set tvregsTab[] = { {HDMI_3840x2160p50_16x9_Y420, tvregs_4k2k_25hz}, {HDMI_2560x1080p50_64x27, tvregs_2560x1080p50hz}, {HDMI_2560x1080p60_64x27, tvregs_2560x1080p60hz}, + {HDMIV_480x320p60hz, tvregs_vesa_480x320p60hz}, {HDMIV_640x480p60hz, tvregs_vesa_640x480p60hz}, + {HDMIV_480x800p60hz, tvregs_vesa_480x800p60hz}, {HDMIV_800x480p60hz, tvregs_vesa_800x480p60hz}, {HDMIV_800x600p60hz, tvregs_vesa_800x600p60hz}, {HDMIV_852x480p60hz, tvregs_vesa_852x480p60hz}, diff --git a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hw_clk.c b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hw_clk.c index bd99c2a42330..df9513a8ebdc 100644 --- a/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hw_clk.c +++ b/drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hw_clk.c @@ -824,9 +824,16 @@ static struct hw_enc_clk_val_group setting_enc_clk_val_24[] = { HDMI_VIC_END}, 3450000, 1, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1}, /* pll setting for VESA modes */ + {{HDMIV_480x320p60hz, + HDMI_VIC_END}, + /* actual hpll : 2016000 */ + 2000000, 4, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1}, {{HDMIV_640x480p60hz, /* 4.028G / 16 = 251.75M */ HDMI_VIC_END}, 4028000, 4, 4, 1, VID_PLL_DIV_5, 2, 1, 1, -1}, + {{HDMIV_480x800p60hz, + HDMI_VIC_END}, + 2560000, 4, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1}, {{HDMIV_800x480p60hz, HDMI_VIC_END}, 4761600, 4, 4, 1, VID_PLL_DIV_5, 2, 1, 1, -1}, @@ -887,6 +894,9 @@ static struct hw_enc_clk_val_group setting_enc_clk_val_24[] = { HDMI_VIC_END}, /* default 1080p60hz */ 5940000, 4, 1, 2, VID_PLL_DIV_5, 1, 1, 1, -1}, + {{HDMI_VIC_FAKE, + HDMI_VIC_END}, + 3450000, 1, 2, 2, VID_PLL_DIV_5, 1, 1, 1, -1}, }; /* For colordepth 10bits */ diff --git a/include/linux/amlogic/media/vout/hdmi_tx/hdmi_common.h b/include/linux/amlogic/media/vout/hdmi_tx/hdmi_common.h index d74d54f462f3..5b998db6fdc4 100644 --- a/include/linux/amlogic/media/vout/hdmi_tx/hdmi_common.h +++ b/include/linux/amlogic/media/vout/hdmi_tx/hdmi_common.h @@ -181,7 +181,9 @@ enum hdmi_vic { HDMI_VIC_Y420_MAX, HDMI_VIC_FAKE = HDMITX_VIC420_FAKE_OFFSET, - HDMIV_640x480p60hz = HDMITX_VESA_OFFSET, + HDMIV_480x320p60hz = HDMITX_VESA_OFFSET, + HDMIV_640x480p60hz, + HDMIV_480x800p60hz, HDMIV_800x480p60hz, HDMIV_800x600p60hz, HDMIV_852x480p60hz,