Odroid - Mate resolution 2160p on 4k TV not working properly

ubuntu mate looks fantastic on my 4k TV Sceptre model W55.
TV has CEC enabled. i also tried disabling it but get same display error. TV has hdmi 1.4 or 2.0 mode, i can toggle whichever mode i want as well.

ubuntu GUI doesn’t let me change resolution so i manually force it in boot.ini file.

setenv display_autodetect "false" setenv m "2160p60hz" # Progressive 60Hz

it only works when I turn the TV on first! then turn the C2 on. if i turn TV off, then back on, i get “no signal.” TV shows nothing but blue. i know the C2 is still working because lights are blinking.

when i turn the C2 on first, then i turn TV on, i also get “no signal” as well.

i know for sure it’s not a hardware issue because when i pop a microSD card with LibreElec, it works amazing at 2160p 60hz! i can turn TV on and off nonstop without any issues.

here is my full boot.ini file. i removed a lot of comments for simplicity sake in this post:

ODROIDC2-UBOOT-CONFIG
# Custom modeline!
"1920,1200,154000,74040,60,1920,1968,2000,2080,1200,1202,1208,1235,1,0,1"

# Auto Detection of Monitor settings based on your Screen information
# See: http://odroid.com/dokuwiki/doku.php?id= ... ct_display
setenv display_autodetect "false"

setenv m "1080p60hz" # Progressive 60Hz
setenv m "2160p60hz" # Progressive 60Hz
# setenv m "2160p50hz420" # Progressive 50Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)
# setenv m "2160p60hz420" # Progressive 60Hz with YCbCr 4:2:0 (Requires TV/Monitor that supports it)

# HDMI BPP Mode
setenv m_bpp "32"

# HDMI HotPlug Detection control
# Allows you to force HDMI thinking that the cable is connected.
# true = HDMI will believe that cable is always connected
# false = will let board/monitor negotiate the connection status
setenv hpd "true"

# Monitor output
# Controls if HDMI PHY should output anything to the monitor
setenv monitor_onoff "false" # true or false

# Server Mode (aka. No Graphics)
setenv nographics "0"

# Meson Timer
setenv mesontimer "1"

# UHS (Ultra High Speed) MicroSD mode enable/disable
setenv disableuhs "false"

# MicroSD Card Detection enable/disable
setenv mmc_removable "true"

# USB Multi WebCam tweak
setenv usbmulticam "false"

# Disable/Enable ODROID-VU7 Touchscreen
setenv disable_vu7 "false"

# Default Console Device Setting
setenv condev "console=ttyS0,115200n8 console=tty0" # on both

# CPU Frequency / Cores control
setenv maxcpus "4"

# MAX Frequency
setenv max_freq "1536" # 1.536GHz

###########################################

# Boot Arguments
if test "${display_autodetect}" = "true"; then usb pwren; hdmitx edid; fi
if test "${m}" = "custombuilt"; then setenv cmode "modeline=${modeline}"; fi
if test "${disable_vu7}" = "false"; then setenv hid_quirks "usbhid.quirks=0x0eef:0x0005:0x0004"; fi

setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend hdmimode=${m} ${cmode} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0 elevator=noop disablehpd=${hpd} max_freq=${max_freq} maxcpus=${maxcpus} monitor_onoff=${monitor_onoff} disableuhs=${disableuhs} mmc_removable=${mmc_removable} usbmulticam=${usbmulticam} ${hid_quirks}"

# Booting

setenv loadaddr "0x11000000"
setenv dtb_loadaddr "0x1000000"
setenv initrd_loadaddr "0x13000000"

fatload mmc 0:1 ${initrd_loadaddr} uInitrd
fatload mmc 0:1 ${loadaddr} Image
fatload mmc 0:1 ${dtb_loadaddr} meson64_odroidc2.dtb
fdt addr ${dtb_loadaddr}

if test "${mesontimer}" = "0"; then fdt rm /meson_timer; fdt rm /cpus/cpu@0/timer; fdt rm /cpus/cpu@1/timer; fdt rm /cpus/cpu@2/timer; fdt rm /cpus/cpu@3/timer; fi
if test "${mesontimer}" = "1"; then fdt rm /timer; fi

if test "${nographics}" = "1"; then fdt rm /reserved-memory; fdt rm /aocec; fi
if test "${nographics}" = "1"; then fdt rm /meson-fb; fdt rm /amhdmitx; fdt rm /picdec; fdt rm /ppmgr; fi
if test "${nographics}" = "1"; then fdt rm /meson-vout; fdt rm /mesonstream; fdt rm /meson-fb; fi
if test "${nographics}" = "1"; then fdt rm /deinterlace; fdt rm /codec_mm; fi

booti ${loadaddr} ${initrd_loadaddr} ${dtb_loadaddr}

Pls excuse the bad looking code. I used backtick and it’s not showing the code section properly.

i believe “Custom modeline” section is the issue. will have to try to change it to match TV settings.
do you see any other issues with my boot.ini?

does it matter if i turn TV to hdmi 1.4 or 2.0?
thanks!