Skip to content

Commit

Permalink
Amlogic-ng: Support 4K GUI scaling on boot.
Browse files Browse the repository at this point in the history
Add boot option native_4k_gui
  • Loading branch information
Raybuntu authored and Portisch committed Jul 16, 2020
1 parent c4d878b commit c529a67
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 12 deletions.
3 changes: 2 additions & 1 deletion projects/Amlogic-ng/bootloader/Odroid_C4_boot.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ setenv heartbeat "1"
setenv coreelec "quiet"
setenv hdmimode "1080p60hz"
setenv frac_rate_policy "0"
setenv native_4k_gui "0"

setenv rootopt "BOOT_IMAGE=kernel.img boot=UUID=@BOOT_UUID@ disk=UUID=@DISK_UUID@"
setenv consoleopt "console=ttyS0,115200 console=tty0 no_console_suspend"
Expand All @@ -37,7 +38,7 @@ if test "${usbpower}" != ""; then setenv usbpower "enable_system_power=${usbpowe
if test "${modeline}" != ""; then setenv cmode "modeline=${modeline}"; fi
if test "${wol}" != ""; then setenv wol "enable_wol=${wol}"; fi
if test "${voutmode}" != ""; then setenv voutmode "voutmode=${voutmode}"; fi
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,0x3d800000 vout=${hdmimode},enable frac_rate_policy=${frac_rate_policy} ${voutmode}"
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,0x3d800000 vout=${hdmimode},enable frac_rate_policy=${frac_rate_policy} native_4k_gui=${native_4k_gui} ${voutmode}"
setenv initargs "${rootopt} ${consoleopt} max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} ${wol} ${cec} ${irsetup} ${usbpower} ${gpiopower} ${usbopts} ${cmode}"
setenv bootargs "${initargs} ${displayopt} ${coreelec}"

Expand Down
3 changes: 2 additions & 1 deletion projects/Amlogic-ng/bootloader/Odroid_N2_boot.ini
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ setenv heartbeat "1"
setenv coreelec "quiet"
setenv hdmimode "1080p60hz"
setenv frac_rate_policy "0"
setenv native_4k_gui "0"

setenv rootopt "BOOT_IMAGE=kernel.img boot=UUID=@BOOT_UUID@ disk=UUID=@DISK_UUID@"
setenv consoleopt "console=ttyS0,115200 console=tty0 no_console_suspend"
Expand All @@ -37,7 +38,7 @@ if test "${usbpower}" != ""; then setenv usbpower "enable_system_power=${usbpowe
if test "${modeline}" != ""; then setenv cmode "modeline=${modeline}"; fi
if test "${wol}" != ""; then setenv wol "enable_wol=${wol}"; fi
if test "${voutmode}" != ""; then setenv voutmode "voutmode=${voutmode}"; fi
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,0x3d800000 vout=${hdmimode},enable frac_rate_policy=${frac_rate_policy} ${voutmode}"
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,0x3d800000 vout=${hdmimode},enable frac_rate_policy=${frac_rate_policy} native_4k_gui=${native_4k_gui} ${voutmode}"
setenv initargs "${rootopt} ${consoleopt} max_freq_a53=${max_freq_a53} max_freq_a73=${max_freq_a73} ${wol} ${cec} ${irsetup} ${usbpower} ${gpiopower} ${usbopts} ${cmode}"
setenv bootargs "${initargs} ${displayopt} ${coreelec}"

Expand Down
3 changes: 2 additions & 1 deletion projects/Amlogic-ng/bootloader/scripts/Generic_cfgload.src
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ setenv remotewakeupmask "0xffffffff"
setenv coreelec "quiet"
setenv hdmimode "1080p60hz"
setenv frac_rate_policy "0"
setenv native_4k_gui "0"

setenv rootopt "BOOT_IMAGE=kernel.img boot=LABEL=COREELEC disk=LABEL=STORAGE"

Expand All @@ -24,7 +25,7 @@ if test "${max_freq_a73}" != ""; then setenv max_freq_a73 "max_freq_a73=${max_fr
if test "${modeline}" != ""; then setenv cmode "modeline=${modeline}"; fi
if test "${wol}" != ""; then setenv wol "enable_wol=${wol}"; fi
if test "${voutmode}" != ""; then setenv voutmode "voutmode=${voutmode}"; fi
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,${fb_addr} frac_rate_policy=${frac_rate_policy} ${voutmode}"
setenv displayopt "hdmimode=${hdmimode} logo=osd0,loaded,${fb_addr} frac_rate_policy=${frac_rate_policy} native_4k_gui=${native_4k_gui} ${voutmode}"
setenv initargs "${rootopt} ${consoleopt} ${max_freq_a53} ${max_freq_a73} ${wol} ${cec} ${gpiopower} ${usbopts} ${cmode}"
setenv bootargs "${bootargs} ${initargs} ${displayopt} ${coreelec}"

Expand Down
27 changes: 18 additions & 9 deletions projects/Amlogic-ng/initramfs/platform_init
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ for arg in $(cat /proc/cmdline); do
frac_rate_policy=*)
frac_rate_policy=${arg#*=}
;;
native_4k_gui=*)
native_4k_gui=${arg#*=}
;;
esac
done

Expand All @@ -51,9 +54,15 @@ case $display_mode in
480*) X=720 Y=480 ;;
576*) X=720 Y=576 ;;
720p*) X=1280 Y=720 ;;
2160p*) X=3840 Y=2160 ;;
*) X=1920 Y=1080 ;;
esac

if [ "$native_4k_gui" -eq "0" -a $X -gt 1920 ]; then
X=1920
Y=1080
fi

Y_VIRT=$(($Y * 2))

fbset -fb /dev/fb0 -g $X $Y $X $Y_VIRT 32
Expand All @@ -63,15 +72,15 @@ echo 0 > /sys/class/graphics/fb1/free_scale
echo 1 > /sys/class/video/disable_video

# Enable scaling for 4K output
case $display_mode in
4k*|smpte*|2160*)
echo 0 0 1919 1079 > /sys/class/graphics/fb0/free_scale_axis
echo 0 0 3839 2159 > /sys/class/graphics/fb0/window_axis
echo 1920 > /sys/class/graphics/fb0/scale_width
echo 1080 > /sys/class/graphics/fb0/scale_height
echo 0x10001 > /sys/class/graphics/fb0/free_scale
;;
esac
if [ "$native_4k_gui" == "0" ]; then
case $display_mode in
4k*|smpte*|2160*)
echo 0 0 1919 1079 > /sys/class/graphics/fb0/free_scale_axis
echo 0 0 3839 2159 > /sys/class/graphics/fb0/window_axis
echo 0x10001 > /sys/class/graphics/fb0/free_scale
;;
esac
fi

# Enable framebuffer device
echo 0 > /sys/class/graphics/fb0/blank
Expand Down

0 comments on commit c529a67

Please sign in to comment.