Setting the framebuffer to match the display mode for older chips (S905W and below)

EmuElec using CoreElec 20.0 Nexus.
For S905W chips and below.
aarch64

I am trying to enable Resolution Switching for EmuELEC. When it’s 1080p60hz the frame buffer is fine but if I try to switch the resolution to 720p60hz, it does switch however it can’t set the primary display buffers virtual geometry to match the physical geometry.

For example:
echo 720p60hz > /sys/class/display/mode
fbset -fb /dev/fb0 -g 1280 720 1280 1440 32

In the fbset the physical geometry (1280 720) changes ok, but the virtual geometry (1280 1440) seems to be fixed and does not change from 1920 3240.
I do not expect a fix as it’s an older chipset but perhaps someone could point me to the right location where it’s keeping the value fixed and not changing and I can modify it to work myself.
I got some more debugging info but I gotta fix up my network to my device I’ll add in a bit.

This is at 1080p60hz:

echo 1080p60hz > /sys/class/display/mode 
fbset -fb /dev/fb0 -g 1920 1080 1920 2160 32
mode "1920x1080-0"
	# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
	geometry 1920 1080 1920 3240 32
	timings 0 0 0 0 0 0 0
	accel false
	rgba 8/16,8/8,8/0,0/24
endmode

720p60hz:

echo 720p60hz > /sys/class/display/mode 
fbset -fb /dev/fb0 -g 1280 720 1280 1440 32
mode "1280x720-0"
	# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
	geometry 1280 720 1920 3240 32
	timings 0 0 0 0 0 0 0
	accel false
	rgba 8/16,8/8,8/0,0/24
endmode

Reference (It’s a really long thread):

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.