From 82667a3dac504bd4afa07f355621c152321ad3b4 Mon Sep 17 00:00:00 2001 From: goodtft Date: Wed, 27 Jan 2021 08:18:51 +0000 Subject: [PATCH] add 1.54 IPS driver --- LCD154-show | 147 +++ Mouse_Key.py | 60 + PyMouse-1.0.tar.gz | Bin 0 -> 4019 bytes python-xlib_0.23-2_all.deb | Bin 0 -> 119448 bytes usr/fbcp-ili9341/.gitignore | 8 + usr/fbcp-ili9341/CMakeLists.txt | 268 +++++ usr/fbcp-ili9341/LICENSE.txt | 19 + usr/fbcp-ili9341/README.md | 690 +++++++++++ usr/fbcp-ili9341/config.h | 242 ++++ usr/fbcp-ili9341/diff.cpp | 490 ++++++++ usr/fbcp-ili9341/diff.h | 44 + usr/fbcp-ili9341/display.cpp | 39 + usr/fbcp-ili9341/display.h | 121 ++ usr/fbcp-ili9341/dma.cpp | 760 ++++++++++++ usr/fbcp-ili9341/dma.h | 141 +++ usr/fbcp-ili9341/example.jpg | Bin 0 -> 305730 bytes usr/fbcp-ili9341/fbcp-ili9341.cpp | 579 +++++++++ usr/fbcp-ili9341/framerate_smoothness.jpg | Bin 0 -> 944250 bytes usr/fbcp-ili9341/freeplaytech_waveshare32b.h | 24 + usr/fbcp-ili9341/gpu.cpp | 510 ++++++++ usr/fbcp-ili9341/gpu.h | 47 + usr/fbcp-ili9341/hx8357d.cpp | 122 ++ usr/fbcp-ili9341/hx8357d.h | 26 + usr/fbcp-ili9341/ili9341.cpp | 170 +++ usr/fbcp-ili9341/ili9341.h | 82 ++ usr/fbcp-ili9341/ili9486.cpp | 163 +++ usr/fbcp-ili9341/ili9486.h | 28 + usr/fbcp-ili9341/ili9486l.h | 26 + usr/fbcp-ili9341/ili9488.cpp | 174 +++ usr/fbcp-ili9341/ili9488.h | 24 + usr/fbcp-ili9341/kernel/Makefile | 3 + usr/fbcp-ili9341/kernel/bcm2835_spi_display.c | 473 ++++++++ .../kernel/build_kernel_module.sh | 6 + .../kernel/start_kernel_module.sh | 3 + usr/fbcp-ili9341/kernel/stop_kernel_module.sh | 10 + usr/fbcp-ili9341/keyboard.cpp | 78 ++ usr/fbcp-ili9341/keyboard.h | 6 + usr/fbcp-ili9341/low_battery.cpp | 80 ++ usr/fbcp-ili9341/low_battery.h | 19 + usr/fbcp-ili9341/mailbox.cpp | 83 ++ usr/fbcp-ili9341/mailbox.h | 10 + usr/fbcp-ili9341/mem_alloc.cpp | 24 + usr/fbcp-ili9341/mem_alloc.h | 8 + usr/fbcp-ili9341/mpi3501.cpp | 135 +++ usr/fbcp-ili9341/mpi3501.h | 48 + usr/fbcp-ili9341/mz61581.cpp | 123 ++ usr/fbcp-ili9341/mz61581.h | 32 + usr/fbcp-ili9341/pitft_28r_ili9341.h | 25 + usr/fbcp-ili9341/pitft_35r_hx8357d.h | 27 + usr/fbcp-ili9341/spi.cpp | 669 +++++++++++ usr/fbcp-ili9341/spi.h | 398 ++++++ usr/fbcp-ili9341/ssd1351.cpp | 96 ++ usr/fbcp-ili9341/ssd1351.h | 39 + usr/fbcp-ili9341/st7735r.cpp | 176 +++ usr/fbcp-ili9341/st7735r.h | 59 + usr/fbcp-ili9341/statistics.cpp | 292 +++++ usr/fbcp-ili9341/statistics.h | 46 + usr/fbcp-ili9341/text.cpp | 66 + usr/fbcp-ili9341/text.h | 1066 +++++++++++++++++ usr/fbcp-ili9341/tick.h | 16 + usr/fbcp-ili9341/tontec_35_mz61581.h | 17 + usr/fbcp-ili9341/util.h | 40 + usr/fbcp-ili9341/waveshare35b.h | 26 + usr/fbcp-ili9341/waveshare_st7735s_hat.h | 20 + usr/fbcp-ili9341/waveshare_st7789vw_hat.h | 18 + usr/fbcp-ili9341/wrong_colors.jpg | Bin 0 -> 141737 bytes usr/local.desktop | 3 + 67 files changed, 9244 insertions(+) create mode 100755 LCD154-show create mode 100644 Mouse_Key.py create mode 100644 PyMouse-1.0.tar.gz create mode 100644 python-xlib_0.23-2_all.deb create mode 100644 usr/fbcp-ili9341/.gitignore create mode 100644 usr/fbcp-ili9341/CMakeLists.txt create mode 100644 usr/fbcp-ili9341/LICENSE.txt create mode 100644 usr/fbcp-ili9341/README.md create mode 100644 usr/fbcp-ili9341/config.h create mode 100644 usr/fbcp-ili9341/diff.cpp create mode 100644 usr/fbcp-ili9341/diff.h create mode 100644 usr/fbcp-ili9341/display.cpp create mode 100644 usr/fbcp-ili9341/display.h create mode 100644 usr/fbcp-ili9341/dma.cpp create mode 100644 usr/fbcp-ili9341/dma.h create mode 100644 usr/fbcp-ili9341/example.jpg create mode 100644 usr/fbcp-ili9341/fbcp-ili9341.cpp create mode 100644 usr/fbcp-ili9341/framerate_smoothness.jpg create mode 100644 usr/fbcp-ili9341/freeplaytech_waveshare32b.h create mode 100644 usr/fbcp-ili9341/gpu.cpp create mode 100644 usr/fbcp-ili9341/gpu.h create mode 100644 usr/fbcp-ili9341/hx8357d.cpp create mode 100644 usr/fbcp-ili9341/hx8357d.h create mode 100644 usr/fbcp-ili9341/ili9341.cpp create mode 100644 usr/fbcp-ili9341/ili9341.h create mode 100644 usr/fbcp-ili9341/ili9486.cpp create mode 100644 usr/fbcp-ili9341/ili9486.h create mode 100644 usr/fbcp-ili9341/ili9486l.h create mode 100644 usr/fbcp-ili9341/ili9488.cpp create mode 100644 usr/fbcp-ili9341/ili9488.h create mode 100644 usr/fbcp-ili9341/kernel/Makefile create mode 100644 usr/fbcp-ili9341/kernel/bcm2835_spi_display.c create mode 100644 usr/fbcp-ili9341/kernel/build_kernel_module.sh create mode 100644 usr/fbcp-ili9341/kernel/start_kernel_module.sh create mode 100644 usr/fbcp-ili9341/kernel/stop_kernel_module.sh create mode 100644 usr/fbcp-ili9341/keyboard.cpp create mode 100644 usr/fbcp-ili9341/keyboard.h create mode 100644 usr/fbcp-ili9341/low_battery.cpp create mode 100644 usr/fbcp-ili9341/low_battery.h create mode 100644 usr/fbcp-ili9341/mailbox.cpp create mode 100644 usr/fbcp-ili9341/mailbox.h create mode 100644 usr/fbcp-ili9341/mem_alloc.cpp create mode 100644 usr/fbcp-ili9341/mem_alloc.h create mode 100644 usr/fbcp-ili9341/mpi3501.cpp create mode 100644 usr/fbcp-ili9341/mpi3501.h create mode 100644 usr/fbcp-ili9341/mz61581.cpp create mode 100644 usr/fbcp-ili9341/mz61581.h create mode 100644 usr/fbcp-ili9341/pitft_28r_ili9341.h create mode 100644 usr/fbcp-ili9341/pitft_35r_hx8357d.h create mode 100644 usr/fbcp-ili9341/spi.cpp create mode 100644 usr/fbcp-ili9341/spi.h create mode 100644 usr/fbcp-ili9341/ssd1351.cpp create mode 100644 usr/fbcp-ili9341/ssd1351.h create mode 100644 usr/fbcp-ili9341/st7735r.cpp create mode 100644 usr/fbcp-ili9341/st7735r.h create mode 100644 usr/fbcp-ili9341/statistics.cpp create mode 100644 usr/fbcp-ili9341/statistics.h create mode 100644 usr/fbcp-ili9341/text.cpp create mode 100644 usr/fbcp-ili9341/text.h create mode 100644 usr/fbcp-ili9341/tick.h create mode 100644 usr/fbcp-ili9341/tontec_35_mz61581.h create mode 100644 usr/fbcp-ili9341/util.h create mode 100644 usr/fbcp-ili9341/waveshare35b.h create mode 100644 usr/fbcp-ili9341/waveshare_st7735s_hat.h create mode 100644 usr/fbcp-ili9341/waveshare_st7789vw_hat.h create mode 100644 usr/fbcp-ili9341/wrong_colors.jpg create mode 100644 usr/local.desktop diff --git a/LCD154-show b/LCD154-show new file mode 100755 index 0000000..f2c49fa --- /dev/null +++ b/LCD154-show @@ -0,0 +1,147 @@ +#!/bin/bash + +sudo ./system_backup.sh + +if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then +sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf +fi +#if [ ! -d /etc/X11/xorg.conf.d ]; then +#sudo mkdir -p /etc/X11/xorg.conf.d +#fi +#sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/ +#sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/mhs35.dtbo + +root_dev=`grep -oPr "root=[^\s]*" /boot/cmdline.txt | awk -F= '{printf $NF}'` +if test "$root_dev" = "/dev/mmcblk0p7";then +sudo cp -rf ./boot/config-noobs-nomal.txt ./boot/config.txt.bak +else +sudo cp -rf ./boot/config-nomal.txt ./boot/config.txt.bak +sudo echo "hdmi_force_hotplug=1" >> ./boot/config.txt.bak +fi +sudo echo "hdmi_cvt 300 300 60 1 0 0 0" >> ./boot/config.txt.bak +sudo echo "hdmi_group=2" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=1" >> ./boot/config.txt.bak +sudo echo "hdmi_mode=87" >> ./boot/config.txt.bak +sudo echo "display_rotate=0" >> ./boot/config.txt.bak +sudo echo "gpio=6,19,5,26,13,21,20,16=pu" >> ./boot/config.txt.bak +sudo cp -rf ./boot/config.txt.bak /boot/config.txt + +#sudo cp -rf ./usr/99-calibration.conf-mhs35-90 /etc/X11/xorg.conf.d/99-calibration.conf +#sudo cp -rf ./usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +#if test "$root_dev" = "/dev/mmcblk0p7";then +#sudo cp ./usr/cmdline.txt-noobs /boot/cmdline.txt +#else +#sudo cp ./usr/cmdline.txt /boot/ +#fi +#sudo cp ./usr/inittab /etc/ +#sudo cp ./boot/config-mhs35.txt /boot/config.txt +sudo touch ./.have_installed +echo "gpio:resistance:LCD154:90:300:300" > ./.have_installed + +#FBCP install +if [ -d ./fbcp-ili9341 ]; then +sudo rm -rf ./fbcp-ili9341 +fi +wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com +if [ $? -eq 0 ]; then +#sudo cp -rf ./usr/99-fbturbo-fbcp.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf +sudo apt-get install cmake 2> error_output.txt +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt && exit +#sudo rm -rf rpi-fbcp +sudo git clone https://github.com/juj/fbcp-ili9341.git +sudo mkdir ./fbcp-ili9341/build +cd ./fbcp-ili9341/build/ +sudo cmake -DSPI_BUS_CLOCK_DIVISOR=10 -DWAVESHARE_ST7789VW_HAT=ON -DBACKLIGHT_CONTROL=OFF -DSTATISTICS=0 -DUSE_DMA_TRANSFERS=OFF .. +sudo make -j +sudo install fbcp-ili9341 /usr/local/bin/fbcp +cd - > /dev/null +sudo cp -rf ./etc/rc.local /etc/rc.local +else +type fbcp > /dev/null 2>&1 +if [ $? -eq 1 ]; then +sudo cp -rf ./usr/fbcp-ili9341 ./ +sudo mkdir ./fbcp-ili9341/build +cd ./fbcp-ili9341/build/ +sudo cmake -DSPI_BUS_CLOCK_DIVISOR=10 -DWAVESHARE_ST7789VW_HAT=ON -DBACKLIGHT_CONTROL=OFF -DSTATISTICS=0 -DUSE_DMA_TRANSFERS=OFF .. +sudo make -j +sudo install fbcp-ili9341 /usr/local/bin/fbcp +cd - > /dev/null +sudo cp -rf ./etc/rc.local /etc/rc.local +fi +fi + +#KEY install +wget --spider -q -o /dev/null --tries=1 -T 10 http://mirrors.zju.edu.cn +if [ $? -eq 0 ]; then +sudo apt-get install python-xlib 2> error_output.txt +else +dpkg -l | grep python-xlib +if [ $? -eq 1 ]; then +sudo dpkg -i -B ./python-xlib_0.23-2_all.deb 2> error_output.txt +fi +fi +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt && exit +grep -q "error:" ./error_output.txt && exit + +wget --spider -q -o /dev/null --tries=1 -T 10 https://pypi.org +if [ $? -eq 0 ]; then +sudo pip install PyMouse 2> error_output.txt +result=`cat ./error_output.txt` +echo -e "\033[31m$result\033[0m" +grep -q "^E:" ./error_output.txt && exit +grep -q "error:" ./error_output.txt && exit +else +pip list | grep PyMouse +if [ $? -eq 1 ]; then +sudo tar xvzf ./PyMouse-1.0.tar.gz +sudo python PyMouse-1.0/setup.py install +fi +fi + +if [ ! -d ~/.config/autostart ]; then +sudo mkdir -p ~/.config/autostart +fi + +if [ ! -f ~/.config/autostart/local.desktop ]; then +sudo cp -rf ./usr/local.desktop ~/.config/autostart +fi +#evdev install +#nodeplatform=`uname -n` +#kernel=`uname -r` +#version=`uname -v` +#if test "$nodeplatform" = "raspberrypi";then +#echo "this is raspberrypi kernel" +#version=${version##* } +#version=${version#*#} +#echo $version +#if test $version -lt 2017;then +#echo "reboot" +#else +#echo "need to update touch configuration" +#sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt +#sudo apt-get install xserver-xorg-input-evdev 2> error_output.txt +#result=`cat ./error_output.txt` +#echo -e "\033[31m$result\033[0m" +#grep -q "error:" ./error_output.txt && exit +#sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf +#echo "reboot" +#fi +#else +#echo "this is not raspberrypi kernel, no need to update touch configure, reboot" +#fi + +sudo sync +sudo sync +sleep 1 +if [ $# -eq 1 ]; then +sudo ./rotate.sh $1 +elif [ $# -gt 1 ]; then +echo "Too many parameters" +fi + +echo "reboot now" +sudo reboot diff --git a/Mouse_Key.py b/Mouse_Key.py new file mode 100644 index 0000000..99beddd --- /dev/null +++ b/Mouse_Key.py @@ -0,0 +1,60 @@ +from pymouse import PyMouse +import time +import RPi.GPIO as GPIO + +GPIO.setmode(GPIO.BCM) + +btn_up = 5 +btn_down = 26 +btn_left = 19 +btn_right = 6 +btn_key1 = 21 +btn_key2 = 20 + +# Up, Down, left, right, Button +GPIO.setup(btn_up, GPIO.IN,GPIO.PUD_UP) +GPIO.setup(btn_down, GPIO.IN,GPIO.PUD_UP) +GPIO.setup(btn_left, GPIO.IN,GPIO.PUD_UP) +GPIO.setup(btn_right, GPIO.IN,GPIO.PUD_UP) +GPIO.setup(btn_key1, GPIO.IN,GPIO.PUD_UP) +GPIO.setup(btn_key2, GPIO.IN,GPIO.PUD_UP) + +def main(): + m = PyMouse() + KEY1_flag = False + KEY2_flag = False + KEY3_flag = False + while True: + nowxy = m.position() + if (not GPIO.input(btn_key1)): # button pressed + KEY1_flag = True + print("KEY1") + m.click(nowxy[0], nowxy[1], 1) + + if KEY1_flag and GPIO.input(btn_key1): # button released + KEY1_flag = False + + if (not GPIO.input(btn_key2)): # button pressed + KEY2_flag = True + print("KEY1") + m.click(nowxy[0], nowxy[1], 2) + + if KEY2_flag and GPIO.input(btn_key2): # button released + KEY2_flag = False + + if (not GPIO.input(btn_up)): # button pressed + m.move(nowxy[0] - 5, nowxy[1]) + + if (not GPIO.input(btn_down)): # button pressed + m.move(nowxy[0] + 5, nowxy[1]) + + if (not GPIO.input(btn_left)): # button pressed + m.move(nowxy[0], nowxy[1] + 5) + + if (not GPIO.input(btn_right)): # button pressed + m.move(nowxy[0], nowxy[1] - 5) + + time.sleep(0.02) # Poll every 20ms (otherwise CPU load gets too high) + +if __name__ == "__main__": + main() diff --git a/PyMouse-1.0.tar.gz b/PyMouse-1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..7028cc251af7828c436f3128174a051c3022194a GIT binary patch literal 4019 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 pk@1!Q0083= rev. 1.2, 3B, 3B+, CM3 or CM3 lite)" ${DEFAULT_TO_ARMV8A}) +if (ARMV8A) + message(STATUS "Enabling optimization flags that target ARMv8-A instruction set (Pi 2B >= rev. 1.2, 3B, 3B+, CM3 or CM3 lite)") + # N.B. Here should be possible to set -mfpu=neon-vfpv4, though for some reason that generates really slow code, tested on gcc (Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516 + # Currently disabled, seems to be a tiny 1-2% slower (or no difference, drown in noise) +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a+crc -mcpu=cortex-a53 -mtune=cortex-a53") +endif() + +set(GPIO_TFT_DATA_CONTROL 0 CACHE STRING "Explicitly specify the Data/Control GPIO pin (sometimes also called Register Select)") +if (GPIO_TFT_DATA_CONTROL GREATER 0) + message(STATUS "Using 4-wire SPI mode of communication, with GPIO pin ${GPIO_TFT_DATA_CONTROL} for Data/Control line") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGPIO_TFT_DATA_CONTROL=${GPIO_TFT_DATA_CONTROL}") +elseif (GPIO_TFT_DATA_CONTROL LESS 0) + message(STATUS "Using 3-wire SPI mode of communication, i.e. a display that does not have a Data/Control line") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSPI_3WIRE_PROTOCOL=1") +endif() + +set(GPIO_TFT_RESET_PIN 0 CACHE STRING "Explicitly specify the Reset GPIO pin (leave out if there is no Reset line)") +if (GPIO_TFT_RESET_PIN) + message(STATUS "Using GPIO pin ${GPIO_TFT_RESET_PIN} for Reset line") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGPIO_TFT_RESET_PIN=${GPIO_TFT_RESET_PIN}") +endif() + +set(GPIO_TFT_BACKLIGHT 0 CACHE STRING "Explicitly specify the Backlight GPIO pin (leave out if there is no controllable Backlight line)") +if (GPIO_TFT_BACKLIGHT) + message(STATUS "Using GPIO pin ${GPIO_TFT_BACKLIGHT} for backlight") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGPIO_TFT_BACKLIGHT=${GPIO_TFT_BACKLIGHT}") +endif() + +set(LOW_BATTERY_PIN 0 CACHE STRING "Explicitly specify the low batt GPIO pin (leave out if there is no low batt signal)") +if (LOW_BATTERY_PIN) + message(STATUS "Using GPIO pin ${LOW_BATTERY_PIN} for low battery status") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLOW_BATTERY_PIN=${LOW_BATTERY_PIN}") +endif() + +option(BACKLIGHT_CONTROL "If true, enables fbcp-ili9341 to take control of backlight" OFF) +if (BACKLIGHT_CONTROL) + message(STATUS "Enabling fbcp-ili9341 backlight control") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBACKLIGHT_CONTROL") +endif() + +option(DISPLAY_CROPPED_INSTEAD_OF_SCALING "If ON, displays the cropped center part of the source image on the SPI display. If OFF, scales the source image to the SPI display" OFF) +if (DISPLAY_CROPPED_INSTEAD_OF_SCALING) + message(STATUS "Cropping source image to view instead of scaling. This will produce crisp pixel perfect rendering, though edges of the display will be cut off if the HDMI and SPI display resolutions do not match. (pass -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=OFF to scale instead of crop)") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISPLAY_CROPPED_INSTEAD_OF_SCALING") +else() + message(STATUS "Scaling source image to view. If the HDMI resolution does not match the SPI display resolution, this will produce blurriness. Match the HDMI display resolution with the SPI resolution in /boot/config.txt to get crisp pixel perfect rendering, or alternatively pass -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON to crop instead of scale if you want to view the center of the screen pixel perfect when HDMI and SPI resolutions do not match.") +endif() + +option(DISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING "If ON, the display is scaled stretched to fit the screen, disregarding preserving aspect ratio." OFF) +if (DISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING) + message(STATUS "Ignoring aspect ratio when scaling source image to the SPI display (Pass -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=OFF to preserve aspect ratio)") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING") +else() + message(STATUS "Preserving aspect ratio when scaling source image to the SPI display, introducing letterboxing/pillarboxing if HDMI and SPI aspect ratios are different (Pass -DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON to stretch HDMI to cover full screen if you do not care about aspect ratio)") +endif() + +set(STATISTICS 1 CACHE STRING "Set to 0, 1 or 2 to configure the level of statistics to display. 0=OFF, 1=regular statistics, 2=frame rate interval histogram") +if (STATISTICS GREATER 1) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFRAME_COMPLETION_TIME_STATISTICS") +endif() + +if (STATISTICS GREATER 0) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTATISTICS") +endif() + +set(SPI_BUS_CLOCK_DIVISOR 0 CACHE STRING "Specify the SPI0 CDIV register value that defines the SPI0 bus speed (No default value, try a safe setting, e.g. -DSPI_BUS_CLOCK_DIVISOR=40 first") +if (SPI_BUS_CLOCK_DIVISOR) + message(STATUS "SPI_BUS_CLOCK_DIVISOR set to ${SPI_BUS_CLOCK_DIVISOR}. Try setting this to a higher value (must be an even number) if this causes problems. Display update speed = core_freq/divisor. (on Pi3B, by default core_freq=400). A safe starting default value may be -DSPI_BUS_CLOCK_DIVISOR=40") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSPI_BUS_CLOCK_DIVISOR=${SPI_BUS_CLOCK_DIVISOR}") +else() + message(FATAL_ERROR "Please define -DSPI_BUS_CLOCK_DIVISOR= on the CMake command line! (see files ili9341.h/waveshare35b.h for details) This parameter along with core_freq=xxx in /boot/config.txt defines the SPI display speed. Smaller divisor number=faster speed, higher number=slower.") +endif() + +option(KERNEL_MODULE_CLIENT "If enabled, run fbcp-ili9341 userland program against the kernel module found in kernel/ subdirectory (must be started before the userland program)" OFF) +if (KERNEL_MODULE_CLIENT) + message(STATUS "KERNEL_MODULE_CLIENT enabled, building userland program to operate against fbcp-ili9341 kernel module") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DKERNEL_MODULE_CLIENT=1") +endif() + +option(DISPLAY_SWAP_BGR "If true, reverses RGB<->BGR color channels" OFF) +if (DISPLAY_SWAP_BGR) + message(STATUS "Swapping RGB<->BGR color channels") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISPLAY_SWAP_BGR") +endif() + +option(DISPLAY_INVERT_COLORS "If true, inverts display colors (white=0, black=31/63" OFF) +if (DISPLAY_INVERT_COLORS) + message(STATUS "Inverting display colors (white=0, black=31/63)") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISPLAY_INVERT_COLORS") +endif() + +option(DISPLAY_ROTATE_180_DEGREES "If true, rotates display upside down" OFF) +if (DISPLAY_ROTATE_180_DEGREES) + message(STATUS "Rotating display output by 180 degrees") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDISPLAY_ROTATE_180_DEGREES") +endif() + +option(KEDEI_V63_MPI3501 "Target KeDei 3.5 inch SPI TFTLCD 480*320 16bit/186bit version 6.3 2018/4/9 display (MPI3501)" OFF) + +option(USE_DMA_TRANSFERS "If enabled, fbcp-ili9341 utilizes DMA to transfer data to the display. Otherwise, Polled SPI mode is used to drive communication with the SPI display" ON) + +# KeDei does not do DMA well, since after each 32-bit word one needs to refresh the chip select signal, preventing DMA batch operations altogether. +if (KEDEI_V63_MPI3501) + set(USE_DMA_TRANSFERS OFF) +endif() + +if (USE_DMA_TRANSFERS) + message(STATUS "USE_DMA_TRANSFERS enabled, this improves performance. Try running CMake with -DUSE_DMA_TRANSFERS=OFF it this causes problems, or try adjusting the DMA channels to use with -DDMA_TX_CHANNEL= -DDMA_RX_CHANNEL=.") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_DMA_TRANSFERS=1") +else() + message(STATUS "USE_DMA_TRANSFERS is disabled, this is not the most efficient mode. Try running CMake with -DUSE_DMA_TRANSFERS=ON to improve performance.") +endif() + +set(DMA_TX_CHANNEL 0 CACHE STRING "Specifies the DMA send channel to use") +if (DMA_TX_CHANNEL) + message(STATUS "DMA_TX_CHANNEL=${DMA_TX_CHANNEL}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDMA_TX_CHANNEL=${DMA_TX_CHANNEL}") +endif() + +set(DMA_RX_CHANNEL 0 CACHE STRING "Specifies the DMA receive channel to use") +if (DMA_RX_CHANNEL) + message(STATUS "DMA_RX_CHANNEL=${DMA_RX_CHANNEL}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDMA_RX_CHANNEL=${DMA_RX_CHANNEL}") +endif() + +option(ADAFRUIT_ILI9341_PITFT "Target Adafruit's ILI9341-based PiTFT display" OFF) +option(FREEPLAYTECH_WAVESHARE32B "Target WaveShare32B ILI9341 display on Freeplaytech's CM3/Zero devices)" OFF) +option(WAVESHARE35B_ILI9486 "Target Waveshare's ILI9486-based Waveshare Wavepear 3.5 inch (B) display" OFF) +option(TONTEC_MZ61581 "Target Tontec's MZ61581-based 3.5 inch display" OFF) + +if (ADAFRUIT_ILI9341_PITFT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9341 -DADAFRUIT_ILI9341_PITFT") + message(STATUS "Targeting Adafruit PiTFT with ILI9340/ILI9341") +elseif(FREEPLAYTECH_WAVESHARE32B) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9341 -DFREEPLAYTECH_WAVESHARE32B") + message(STATUS "Targeting WaveShare 3.2 inch (B) display with ILI9341") +elseif(ADAFRUIT_HX8357D_PITFT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHX8357D -DADAFRUIT_HX8357D_PITFT") + message(STATUS "Targeting Adafruit 3.5 inch PiTFT with HX8357D") +elseif(WAVESHARE_ST7789VW_HAT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7789 -DST7789VW -DWAVESHARE_ST7789VW_HAT") + message(STATUS "Targeting WaveShare 240x240 1.3inch IPS LCD Hat with ST7789VW controller") +elseif(WAVESHARE_ST7735S_HAT) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7735S -DWAVESHARE_ST7735S_HAT") + message(STATUS "Targeting WaveShare 128x128 1.44inch LCD Hat with ST7735S controller") +elseif(ILI9340) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9340") + message(STATUS "Targeting ILI9340") +elseif(KEDEI_V63_MPI3501) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPI3501 -DKEDEI_V63_MPI3501") + message(STATUS "Targeting KeDei 3.5 inch SPI TFTLCD 480*320 16bit/18bit version 6.3 2018/4/9 display (MPI3501)") + if (USE_DMA_TRANSFERS) + message(FATAL_ERROR "DMA is unfortunately not possible with KeDei MPI3501. Please disable with -DUSE_DMA_TRANSFERS=OFF.") + endif() +elseif(ILI9341) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9341") + message(STATUS "Targeting ILI9341") +elseif(ST7789) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7789") + message(STATUS "Targeting ST7789") +elseif(ST7789VW) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7789 -DST7789VW") + message(STATUS "Targeting ST7789VW (based as variant of ST7789)") +elseif(ST7735R) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7735R") + message(STATUS "Targeting ST7735R") +elseif(ST7735S) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DST7735S") + message(STATUS "Targeting ST7735S") +elseif(SSD1351) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSSD1351") + message(STATUS "Targeting SSD1351") +elseif(WAVESHARE35B_ILI9486) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9486 -DWAVESHARE35B_ILI9486") + message(STATUS "Targeting WaveShare 3.5 inch (B) display with ILI9486") +elseif(ILI9486) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9486") + message(STATUS "Targeting ILI9486") +elseif(ILI9486L) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9486L") + message(STATUS "Targeting ILI9486L") +elseif(ILI9488) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DILI9488") + message(STATUS "Targeting ILI9488") +elseif(TONTEC_MZ61581) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMZ61581 -DTONTEC_MZ61581") + message(STATUS "Targeting TONTEC_MZ61581") +elseif(MZ61581) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMZ61581") + message(STATUS "Targeting MZ61581") +elseif(MPI3501) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMPI3501") + message(STATUS "Targeting MPI3501") + if (USE_DMA_TRANSFERS) + message(FATAL_ERROR "DMA is unfortunately not possible with MPI3501. Please disable with -DUSE_DMA_TRANSFERS=OFF.") + endif() +else() + message(FATAL_ERROR "Please specify which display controller to use on command line to CMake!") +endif() + +add_executable(fbcp-ili9341 ${sourceFiles}) + +target_link_libraries(fbcp-ili9341 pthread bcm_host atomic) diff --git a/usr/fbcp-ili9341/LICENSE.txt b/usr/fbcp-ili9341/LICENSE.txt new file mode 100644 index 0000000..ef9f2db --- /dev/null +++ b/usr/fbcp-ili9341/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) Jukka Jylänki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/usr/fbcp-ili9341/README.md b/usr/fbcp-ili9341/README.md new file mode 100644 index 0000000..cfe85d1 --- /dev/null +++ b/usr/fbcp-ili9341/README.md @@ -0,0 +1,690 @@ +# Introduction + +This repository implements a driver for certain SPI-based LCD displays for Raspberry Pi A, B, 2, 3, 4 and Zero. + +![PiTFT display](/example.jpg "Adafruit PiTFT 2.8 with ILI9341 controller") + +The work was motivated by curiosity after seeing this series of videos on the RetroManCave YouTube channel: + - [RetroManCave: Waveshare 3.5" Raspberry Pi Screen | Review](https://www.youtube.com/watch?v=SGMC0t33C50) + - [RetroManCave: Waveshare 3.2" vs 3.5" LCD screen gaming test | Raspberry Pi / RetroPie](https://www.youtube.com/watch?v=8bazEcXemiA) + - [Elecrow 5 Inch LCD Review | RetroPie & Raspberry Pi](https://www.youtube.com/watch?v=8VgNBDMOssg) + +In these videos, the SPI (GPIO) bus is referred to being the bottleneck. SPI based displays update over a serial data bus, transmitting one bit per clock cycle on the bus. A 320x240x16bpp display hence requires a SPI bus clock rate of 73.728MHz to achieve a full 60fps refresh frequency. Not many SPI LCD controllers can communicate this fast in practice, but are constrained to e.g. a 16-50MHz SPI bus clock speed, capping the maximum update rate significantly. Can we do anything about this? + +The fbcp-ili9341 project started out as a display driver for the [Adafruit 2.8" 320x240 TFT w/ Touch screen for Raspberry Pi](https://www.adafruit.com/product/1601) display that utilizes the ILI9341 controller. On that display, fbcp-ili9341 can achieve a 60fps update rate, depending on the content that is being displayed. Check out these videos for examples of the driver in action: + + - [fbcp-ili9341 frame delivery smoothness test on Pi 3B and Adafruit ILI9341 at 119Hz](https://youtu.be/IqzKT33Rwjc) + - [Latency and tearing test #2: GPIO input to display latency in fbcp-ili9341 and tearing modes](https://www.youtube.com/watch?v=EOICdpjiqv8) + - [Latency and tearing test: KeDei 3.5" 320x480 HDMI vs Adafruit 2.8" PiTFT ILI9341 240x320 SPI](https://www.youtube.com/watch?v=1yvmvv0KtNs) + - [fbcp-ili9341 ported to ILI9486 WaveShare 3.5" (B) SpotPear 320x480 SPI display](https://www.youtube.com/watch?v=dqOLIHOjLq4) + - [Quake 60 fps inside Gameboy Advance (ILI9341)](https://www.youtube.com/watch?v=xmO8t3XlxVM) + - First implementation of a statistics overlay: [fbcp-ili9341 SPI display driver on Adafruit PiTFT 2.8"](http://youtu.be/rKSH048XRjA) + - Initial proof of concept video: [fbcp-ili9341 driver first demo](https://youtu.be/h1jhuR-oZm0) + +### How It Works + +Given that the SPI bus can be so constrained on bandwidth, how come fbcp-ili9341 seems to be able to update at up to 60fps? The way this is achieved is by what could be called *adaptive display stream updates*. Instead of uploading each pixel at each display refresh cycle, only the actually changed pixels on screen are submitted to the display. This is doable because the ILI9341 controller, as many other popular controllers, have communication interface functions that allow specifying partial screen updates, down to subrectangles or even individual pixel levels. This allows beating the bandwidth limit: for example in Quake, even though it is a fast pacing game, on average only about 46% of all pixels on screen change each rendered frame. Some parts, such as the UI stay practically constant across multiple frames. + +Other optimizations are also utilized to squeeze out even more performance: + - The program directly communicates with the BCM2835 ARM Peripherals controller registers, bypassing the usual Linux software stack. + - A hybrid of both Polled Mode SPI and DMA based transfers are utilized. Long sequential transfer bursts are performed using DMA, and when DMA would have too much latency, Polled Mode SPI is applied instead. + - Undocumented BCM2835 features are used to squeeze out maximum bandwidth: [SPI CDIV is driven at even numbers](https://www.raspberrypi.org/forums/viewtopic.php?t=43442) (and not just powers of two), and the [SPI DLEN register is forced in non-DMA mode](https://www.raspberrypi.org/forums/viewtopic.php?t=181154) to avoid an idle 9th clock cycle for each transferred byte. + - Good old **interlacing** is added into the mix: if the amount of pixels that needs updating is detected to be too much that the SPI bus cannot handle it, the driver adaptively resorts to doing an interlaced update, uploading even and odd scanlines at subsequent frames. Once the number of pending pixels to write returns to manageable amounts, progressive updating is resumed. This effectively doubles the maximum display update rate. (If you do not like the visual appearance that interlacing causes, it is easy to disable this by uncommenting the line `#define NO_INTERLACING` in file `config.h`) + - A dedicated SPI communication thread is used in order to keep the SPI bus active at all times. + - A number of other micro-optimization techniques are used, such as batch updating rectangular spans of pixels, merging disjoint-but-close spans of pixels on the same scanline, and latching Column and Page End Addresses to bottom-right corner of the display to be able to cut CASET and PASET messages in mid-communication. + +The result is that the SPI bus can be kept close to 100% saturation, ~94-97% usual, to maximize the utilization rate of the bus, while only transmitting practically the minimum number of bytes needed to describe each new frame. + +### Tested Devices + +The driver has been checked to work (at least some point in the past) on the following systems: + + - Raspberry Pi 3 Model B+ with Raspbian Stretch (GCC 6.3.0) + - Raspberry Pi 3 Model B Rev 1.2 with Raspbian Jessie (GCC 4.9.2) and Raspbian Stretch (GCC 6.3.0) + - Raspberry Pi Zero W with Raspbian Jessie (GCC 4.9.2) and Raspbian Stretch (GCC 6.3.0) + - Raspberry Pi 2 Model B + - Raspberry Pi B Rev. 2.0 (old board from Q4 2012, board revision ID 000e) + +although not all boards are actively tested on, so ymmv especially on older boards. (Bug fixes welcome, use https://elinux.org/RPi_HardwareHistory to identify which board you are running on) + +### Tested Displays + +The following LCD displays have been tested: + + - [Adafruit 2.8" 320x240 TFT w/ Touch screen for Raspberry Pi](https://www.adafruit.com/product/1601) with ILI9341 controller + - [Adafruit PiTFT 2.2" HAT Mini Kit - 320x240 2.2" TFT - No Touch](https://www.adafruit.com/product/2315) with ILI9340 controller + - [Adafruit PiTFT - Assembled 480x320 3.5" TFT+Touchscreen for Raspberry Pi](https://www.adafruit.com/product/2097) with HX8357D controller + - [Adafruit 128x96 OLED Breakout Board - 16-bit Color 1.27" w/microSD holder](https://www.adafruit.com/product/1673) with SSD1351 controller + - [Waveshare 3.5inch RPi LCD (B) 320*480 Resolution Touch Screen IPS TFT Display](https://www.amazon.co.uk/dp/B01N48NOXI/ref=pe_3187911_185740111_TE_item) with ILI9486 controller + - [maithoga 3.5 inch 8PIN SPI TFT LCD Color Screen with Adapter Board ILI9486](https://www.aliexpress.com/item/3-5-inch-8P-SPI-TFT-LCD-Color-Screen-Module-ILI9486-Drive-IC-320-480-RGB/32828284227.html) with **ILI9486L** controller + - [BuyDisplay.com 320x480 Serial SPI 3.2"TFT LCD Module Display](https://www.buydisplay.com/default/serial-spi-3-2-inch-tft-lcd-module-display-ili9341-power-than-sainsmart) with ILI9341 controller + - [Arduino A000096 1.77" 160x128 LCD Screen](https://store.arduino.cc/arduino-lcd-screen) with ST7735R controller + - [Tontec 3.5" 320x480 LCD Display](https://www.ebay.com/p/Tontec-3-5-Inches-Touch-Screen-for-Raspberry-Pi-Display-TFT-Monitor-480x320-LCD/1649448059) with MZ61581-PI-EXT 2016.1.28 controller + - [Adafruit 1.54" 240x240 Wide Angle TFT LCD Display with MicroSD](https://www.adafruit.com/product/3787) with ST7789 controller + - [WaveShare 240x240, 1.3inch IPS LCD display HAT for Raspberry Pi](https://www.waveshare.com/1.3inch-lcd-hat.htm) with ST7789VW controller + - [WaveShare 128x128, 1.44inch LCD display HAT for Raspberry Pi](https://www.waveshare.com/1.44inch-lcd-hat.htm) with ST7735S controller + - [KeDei 3.5 inch SPI TFTLCD 480*320 16bit/18bit version 6.3 2018/4/9](https://github.com/juj/fbcp-ili9341/issues/40) with MPI3501 controller + - Unbranded 2.8" 320x240 display with ILI9340 controller + +### Installation + +Check the following sections to set up the driver. + +##### Boot configuration + +This driver does not utilize the [notro/fbtft](https://github.com/notro/fbtft) framebuffer driver, so that needs to be disabled if active. That is, if your `/boot/config.txt` file has lines that look something like `dtoverlay=pitft28r, ...`, `dtoverlay=waveshare32b, ...` or `dtoverlay=flexfb, ...`, those should be removed. + +This program neither utilizes the default SPI driver, so a line such as `dtparam=spi=on` in `/boot/config.txt` should also be removed so that it will not cause conflicts. + +Likewise, if you have any touch controller related dtoverlays active, such as `dtoverlay=ads7846,...` or anything that has a `penirq=` directive, those should be removed as well to avoid conflicts. It would be possible to add touch support to fbcp-ili9341 if someone wants to take a stab at it. + +##### Building and running + +Run in the console of your Raspberry Pi: + +```bash +sudo apt-get install cmake +cd ~ +git clone https://github.com/juj/fbcp-ili9341.git +cd fbcp-ili9341 +mkdir build +cd build +cmake [options] .. +make -j +sudo ./fbcp-ili9341 +``` + +Note especially the two dots `..` on the CMake line, which denote "up one directory" in this case (instead of referring to "more items go here"). + +See the next section to see what to input under **[options]**. + +If you have been running existing `fbcp` driver, make sure to remove that e.g. via a `sudo pkill fbcp` first (while running in SSH prompt or connected to a HDMI display), these two cannot run at the same time. If `/etc/rc.local` or `/etc/init.d` contains an entry to start up `fbcp` at boot, that directive should be deleted. + +##### Configuring build options + +There are generally two ways to configure build options, at CMake command line, and in the file [config.h](https://github.com/juj/fbcp-ili9341/blob/master/config.h). + +On the CMake command line, the following options can be configured: + +###### If you have a display Add-On Hat + +When using one of the displays that stack on top of the Pi that are already recognized by fbcp-ili9341, you don't need to specify the GPIO pin assignments, but fbcp-ili9341 code already has those. Pass one of the following CMake directives for the hats: + +- `-DADAFRUIT_ILI9341_PITFT=ON`: If you are running on the [Adafruit 2.8" 320x240 TFT w/ Touch screen for Raspberry Pi](https://www.adafruit.com/product/1601) (or the [Adafruit PiTFT 2.2" HAT Mini Kit - 320x240 2.2" TFT - No Touch](https://www.adafruit.com/product/2315) display, which is compatible), pass this flag. +- `-DADAFRUIT_HX8357D_PITFT=ON`: If you have the [Adafruit PiTFT - Assembled 480x320 3.5" TFT+Touchscreen for Raspberry Pi](https://www.adafruit.com/product/2097) display, add this line. +- `-DFREEPLAYTECH_WAVESHARE32B=ON`: If you are running on the [Freeplay CM3 or Zero](https://www.freeplaytech.com/product/freeplay-cm3-diy-kit/) device, pass this flag. (this is not a hat, but still a preconfigured pin assignment) +- `-DWAVESHARE35B_ILI9486=ON`: If specified, targets a [Waveshare 3.5" 480x320 ILI9486](https://www.amazon.co.uk/dp/B01N48NOXI/ref=pe_3187911_185740111_TE_item) display. +- `-DTONTEC_MZ61581=ON`: If you are running on the [Tontec 3.5" 320x480 LCD Display](https://www.ebay.com/p/Tontec-3-5-Inches-Touch-Screen-for-Raspberry-Pi-Display-TFT-Monitor-480x320-LCD/1649448059) display, pass this. +- `-DWAVESHARE_ST7789VW_HAT=ON`: If specified, targets a [240x240, 1.3inch IPS LCD display HAT for Raspberry Pi](https://www.waveshare.com/1.3inch-lcd-hat.htm) with ST7789VW display controller. +- `-DWAVESHARE_ST7735S_HAT=ON`: If specified, targets a [128x128, 1.44inch LCD display HAT for Raspberry Pi](https://www.waveshare.com/1.3inch-lcd-hat.htm) with ST7735S display controller. +- `-DKEDEI_V63_MPI3501=ON`: If specified, targets a [KeDei 3.5 inch SPI TFTLCD 480*320 16bit/18bit version 6.3 2018/4/9](https://github.com/juj/fbcp-ili9341/issues/40) display with MPI3501 display controller. + +###### If you wired the display to the Pi yourself + +If you connected wires directly on the Pi instead of using a Hat from the above list, you will need to use the configuration directives below. In addition to specifying the display, you will also need to tell fbcp-ili9341 which GPIO pins you wired the connections to. To configure the display controller, pass one of: + +- `-DILI9341=ON`: If you are running on any other generic ILI9341 display, or on Waveshare32b display that is standalone and not on the FreeplayTech CM3/Zero device, pass this flag. +- `-DILI9340=ON`: If you have a ILI9340 display, pass this directive. ILI9340 and ILI9341 chipsets are very similar, but ILI9340 doesn't support all of the features on ILI9341 and they will be disabled or downgraded. +- `-DHX8357D=ON`: If you have a HX8357D display, pass this directive. +- `-DSSD1351=ON`: If you have a SSD1351 OLED display, use this. +- `-DST7735R=ON`: If you have a ST7735R display, use this. +- `-DST7789=ON`: If you have a ST7789 display, use this. +- `-DST7789VW=ON`: If you have a ST7789VW display, use this. +- `-DST7735S=ON`: If you have a ST7735S display, use this. +- `-DILI9486=ON`: If you have a ILI9486 display, pass this directive. +- `-DILI9486L=ON`: If you have a ILI9486L display, pass this directive. Note that ILI9486 and ILI9486L are quite different, mutually incompatible controller chips, so be careful here identifying which one you have. (or just try both, should not break if you misidentified) +- `-DILI9488=ON`: If you have a ILI9488 display, pass this directive. +- `-DMPI3501=ON`: If specified, targets a display with MPI3501 display controller. + +And additionally, pass the following to customize the GPIO pin assignments you used: + +- `-DGPIO_TFT_DATA_CONTROL=number`: Specifies/overrides which GPIO pin to use for the Data/Control (DC) line on the 4-wire SPI communication. This pin number is specified in BCM pin numbers. If you have a 3-wire SPI display that does not have a Data/Control line, **set this value to -1**, i.e. `-DGPIO_TFT_DATA_CONTROL=-1` to tell fbcp-ili9341 to target 3-wire ("9-bit") SPI communication. +- `-DGPIO_TFT_RESET_PIN=number`: Specifies/overrides which GPIO pin to use for the display Reset line. This pin number is specified in BCM pin numbers. If omitted, it is assumed that the display does not have a Reset pin, and is always on. +- `-DGPIO_TFT_BACKLIGHT=number`: Specifies/overrides which GPIO pin to use for the display backlight line. This pin number is specified in BCM pin numbers. If omitted, it is assumed that the display does not have a GPIO-controlled backlight pin, and is always on. If setting this, also see the `#define BACKLIGHT_CONTROL` option in `config.h`. + +fbcp-ili9341 always uses the hardware SPI0 port, so the MISO, MOSI, CLK and CE0 pins are always the same and cannot be changed. The MISO pin is actually not used (at the moment at least), so you can just skip connecting that one. If your display is a rogue one that ignores the chip enable line, you can omit connecting that as well, or might also be able to get away by connecting that to ground if you are hard pressed to simplify wiring (depending on the display). + +###### Specifying display speed + +To get good performance out of the displays, you will drive the displays far out above the rated speed specs (the rated specs yield about ~10fps depending on display). Due to this, you will need to explicitly configure the target speed you want to drive the display at, because due to manufacturing variances each display copy reaches a different maximum speed. There is no "default speed" that fbcp-ili9341 would use. Setting the speed is done via the option + +- `-DSPI_BUS_CLOCK_DIVISOR=even_number`: Sets the clock divisor number which along with the Pi [core_freq=](https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md) option in `/boot/config.txt` specifies the overall speed that the display SPI communication bus is driven at. `SPI_frequency = core_freq/divisor`. `SPI_BUS_CLOCK_DIVISOR` must be an even number. Default Pi 3B and Zero W `core_freq` is 400MHz, and generally a value `-DSPI_BUS_CLOCK_DIVISOR=6` seems to be the best that a ILI9341 display can do. Try a larger value if the display shows corrupt output, or a smaller value to get higher bandwidth. See [ili9341.h](https://github.com/juj/fbcp-ili9341/blob/master/ili9341.h#L13) and [waveshare35b.h](https://github.com/juj/fbcp-ili9341/blob/master/waveshare35b.h#L10) for data points on tuning the maximum SPI performance. Safe initial value could be something like `-DSPI_BUS_CLOCK_DIVISOR=30`. + +###### Specifying the target Pi hardware + +There are a couple of options to explicitly say which Pi board you want to target. These should be autodetected for you and generally are not needed, but e.g. if you are cross compiling for another Pi board from another system, or want to be explicit, you can try: + +- `-DSINGLE_CORE_BOARD=ON`: Pass this option if you are running on a Pi that has only one hardware thread (Pi Model A, Pi Model B, Compute Module 1, Pi Zero/Zero W). If not present, autodetected. +- `-DARMV6Z=ON`: Pass this option to specifically optimize for ARMv6Z instruction set (Pi 1A, 1A+, 1B, 1B+, Zero, Zero W). If not present, autodetected. +- `-DARMV7A=ON`: Pass this option to specifically optimize for ARMv7-A instruction set (Pi 2B < rev 1.2). If not present, autodetected. +- `-DARMV8A=ON`: Pass this option to specifically optimize for ARMv8-A instruction set (Pi 2B >= rev. 1.2, 3B, 3B+, CM3, CM3 lite or 4B). If not present, autodetected. + +###### Specifying other build options + +The following build options are general to all displays and Pi boards, they further customize the build: + +- `-DBACKLIGHT_CONTROL=ON`: If set, enables fbcp-ili9341 to control the display backlight in the given backlight pin. The display will go to sleep after a period of inactivity on the screen. If not, backlight is not touched. +- `-DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON`: If set, and source video frame is larger than the SPI display video resolution, the source video is presented on the SPI display by cropping out parts of it in all directions, instead of scaling to fit. +- `-DDISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING=ON`: When scaling source video to SPI display, scaling is performed by default following aspect ratio, adding letterboxes/pillarboxes as needed. If this is set, the stretching is performed breaking aspect ratio. +- `-DSTATISTICS=number`: Specifies the level of overlay statistics to show on screen. 0: disabled, 1: enabled, 2: enabled, and show frame rate interval graph as well. Default value is 1 (enabled). +- `-DUSE_DMA_TRANSFERS=OFF`: If specified, disables using DMA transfers (at great expense of lost CPU usage). Pass this directive if DMA is giving some issues, e.g. as a troubleshooting step if something is not looking right. +- `-DDMA_TX_CHANNEL=`: Specifies the DMA channel number to use for SPI send commands. Change this if you find a DMA channel conflict. +- `-DDMA_RX_CHANNEL=`: Specifies the DMA channel number to use for SPI receive commands. Change this if you find a DMA channel conflict. +- `-DDISPLAY_SWAP_BGR=ON`: If this option is passed, red and blue color channels are reversed (RGB<->BGR) swap. Some displays have an opposite color panel subpixel layout that the display controller does not automatically account for, so define this if blue and red are mixed up. +- `-DDISPLAY_INVERT_COLORS=ON`: If this option is passed, pixel color value interpretation is reversed (white=0, black=31/63). Default: black=0, white=31/63. Pass this option if the display image looks like a color negative of the actual colors. +- `-DDISPLAY_ROTATE_180_DEGREES=ON`: If set, display is rotated 180 degrees. This does not affect HDMI output, only the SPI display output. +- `-DLOW_BATTERY_PIN=`: Specifies a GPIO pin that can be polled to get the battery state. By default, when this is set, a low battery icon will be displayed if the pin is pulled low (see `config.h` for ways in which this can be tweaked). + +In addition to the above CMake directives, there are various defines scattered around the codebase, mostly in [config.h](https://github.com/juj/fbcp-ili9341/blob/master/config.h), that control different runtime options. Edit those directly to further tune the behavior of the program. In particular, after you have finished with the setup, you may want to build with `-DSTATISTICS=0` option in CMake configuration line. + +##### Build example + +Here is a full example of what to type to build and run, if you have the [Adafruit 2.8" 320x240 TFT w/ Touch screen for Raspberry Pi](https://www.adafruit.com/product/1601) with ILI9341 controller: + +```bash +cd ~ +sudo apt-get install cmake +git clone https://github.com/juj/fbcp-ili9341.git +cd fbcp-ili9341 +mkdir build +cd build +cmake -DSPI_BUS_CLOCK_DIVISOR=6 -DADAFRUIT_ILI9341_PITFT=ON .. +make -j +sudo ./fbcp-ili9341 +``` + +If the above does not work, try specifying `-DSPI_BUS_CLOCK_DIVISOR=8` or `=10` to make the display run a little slower, or try with `-DUSE_DMA_TRANSFERS=OFF` to troubleshoot if DMA might be the issue. If you are using another display controller than ILI9341, using a much higher value, like 30 or 40 may be needed. When changing CMake options, you can reissue the CMake directive line without having to reclone or recreate the `build` directory. However you may need to manually delete file CMakeCache.txt between changing options to avoid CMake remembering old settings. + +If you want to do a full rebuild from scratch, you can `rm -rf build` to delete the build directory and recreate it for a clean rebuild from scratch. There is nothing special about the name or location of this directory, it is just my usual convention. You can also do the build in some other directory relative to the fbcp-ili9341 directory if you please. + +##### Launching the display driver at startup + +To set up the driver to launch at startup, edit the file `/etc/rc.local` in `sudo` mode, and add a line + +```bash +sudo /path/to/fbcp-ili9341/build/fbcp-ili9341 & +```` + +to the end. Make note of the needed ampersand `&` at the end of that line. + +For example, if you used the command line steps listed above to build, the file `/etc/rc.local` would receive a line + +```bash +sudo /home/pi/fbcp-ili9341/build/fbcp-ili9341 & +```` + +If the user name of your Raspberry Pi installation is something else than the default `pi`, change the directory accordingly to point to the user's home directory. (Use `pwd` to find out the current directory in terminal) + +##### Configuring HDMI and TFT display sizes + +If the size of the default HDMI output `/dev/fb0` framebuffer differs from the resolution of the display, the source video size will by default be rescaled to fit to the size of the SPI display. fbcp-ili9341 will manage setting up this rescaling if needed, and it will be done by the GPU, so performance should not be impacted too much. However if the resolutions do not match, small text will probably appear illegible. The resizing will be done in aspect ratio preserving manner, so if the aspect ratios do not match, either horizontal or vertical black borders will appear on the display. If you do not use the HDMI output at all, it is probably best to configure the HDMI output to match the SPI display size so that rescaling will not be needed. This can be done by setting the following lines in `/boot/config.txt`: + +``` +hdmi_group=2 +hdmi_mode=87 +hdmi_cvt=320 240 60 1 0 0 0 +hdmi_force_hotplug=1 +``` + +If your SPI display has a different resolution than 320x240, change the `320 240` part to e.g. `480 320`. + +These lines hint native applications about the default display mode, and let them render to the native resolution of the TFT display. This can however prevent the use of the HDMI connector, if the HDMI connected display does not support such a small resolution. As a compromise, if both HDMI and SPI displays want to be used at the same time, some other compatible resolution such as 640x480 can be used. See [Raspberry Pi HDMI documentation](https://www.raspberrypi.org/documentation/configuration/config-txt/video.md) for the available options to do this. + +##### Tuning Performance + +The refresh speed of the display is dictated by the clock speed of the SPI bus that the display is connected to. Due to the way the BCM2835 chip on Raspberry Pi works, there does not exist a simple `speed=xxx Mhz` option that could be set to define the bus speed. Instead, the SPI bus speed is derived from two separate parameters: the core frequency of the BCM2835 SoC in general (`core_freq` in `/boot/config.txt`), and the SPI peripheral `CDIV` (Clock DIVider) setting. Together, the resulting SPI bus speed is then calculated with the formula `SPI_speed=core_freq/CDIV`. + +To optimize the display to run as fast as possible, + +1. Adjust the `CDIV` value by passing the directive `-DSPI_BUS_CLOCK_DIVISOR=number` in CMake command line. Possible values are even numbers `2`, `4`, `6`, `8`, `...`. Note that since `CDIV` appears in the denominator in the formula for `SPI_speed`, smaller values result in higher bus speeds, whereas higher values make the display go slower. Initially when you don't know how fast your display can run, try starting with a safe high setting, such as `-DSPI_BUS_CLOCK_DIVISOR=30`, and work your way to smaller numbers to find the maximum speed the display can cope with. See the table at the end of the README for specific observed maximum bus speeds for different displays. + +2. Ensure turbo speed. This is critical for good frame rates. On the Raspberry Pi 3 Model B, the BCM2835 core runs by default at 400MHz (resulting in `400/CDIV` MHz SPI speed) **if** there is enough power provided to the Pi, and if the CPU temperature does not exceed thermal limits. If the CPU is idle, or voltage is low, the BCM2835 core will instead revert to non-turbo 250MHz state, resulting in `250/CDIV` MHz SPI speed. This effect of turbo speed on performance is significant, since 400MHz vs non-turbo 250MHz comes out to +60% of more bandwidth. Getting 60fps in Quake, Sonic or Tyrian often requires this turbo frequency, but e.g. NES and C64 emulated games can often reach 60fps even with the stock 250MHz. If for some reason under-voltage protection is kicking in even when enough power should be fed, you can [force-enable turbo when low voltage is present](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=82373) by setting the value `avoid_warnings=2` in the file `/boot/config.txt`. + +3. Perhaps a bit counterintuitively, **underclock** the core. Setting a **smaller** core frequency than the default turbo 400MHz can enable using a smaller clock divider to get a higher resulting SPI bus speed. For example, if with default `core_freq=400` SPI `CDIV=8` works (resulting in SPI bus speed `400MHz/8=50MHz`), but `CDIV=6` does not (`400MHz/6=66.67MHz` was too much), you can try lowering `core_freq=360` and set `CDIV=6` to get an effective SPI bus speed of `360MHz/6=60MHz`, a middle ground between the two that might perhaps work. Balancing `core_freq=` and `CDIV` options allows one to find the maximum SPI bus speed up to the last few kHz that the display controller can tolerate. One can also try the opposite direction and overclock, but that does then of course have all the issues that come along when overclocking. Underclocking does have the drawback that it makes the Pi run slower overall, so this is certainly a tradeoff. + +##### Tuning CPU Usage + +On the other hand, it is desirable to control how much CPU time fbcp-ili9341 is allowed to use. The default build settings are tuned to maximize the display refresh rate at the expense of power consumption on Pi 3B. On Pi Zero, the opposite is done, i.e. by default the driver optimizes for battery saving instead of maximal display update speed. The following options can be controlled to balance between these two: + +- The main option to control CPU usage vs performance aspect is the option `#define ALL_TASKS_SHOULD_DMA` in `config.h`. Enabling this option will greatly reduce CPU usage. If this option is disabled, SPI bus utilization is maximized but CPU usage can be up to 80%-120%. When this option is enabled, CPU usage is generally up to around 15%-30%. Maximal CPU usage occurs when watching a video, or playing a fast moving game. If nothing is changing on the screen, CPU consumption of the driver should go down very close to 0-5%. By default `#define ALL_TASKS_SHOULD_DMA` is enabled for Pi Zero, but disabled for Pi 3B. + +- The CMake option `-DUSE_DMA_TRANSFERS=ON` should always be enabled for good low CPU usage. If DMA transfers are disabled, the driver will run in Polled SPI mode, which generally utilizes a full dedicated single core of CPU time. If DMA transfers are causing issues, try adjusting the DMA send and receive channels to use for SPI communication with `-DDMA_TX_CHANNEL=` and `-DDMA_RX_CHANNEL=` CMake options. + +- The statistics overlay prints out quite detailed information about execution state. Disabling the overlay with `-DSTATISTICS=0` option to CMake improves performance and reduces CPU usage. If you want to keep printing statistics, you can try increasing the interval with the `#define STATISTICS_REFRESH_INTERVAL ` option in config.h. + +- Enabling `#define USE_GPU_VSYNC` reduces CPU consumption, but because of https://github.com/raspberrypi/userland/issues/440 can cause stuttering. Disabling `#defined USE_GPU_VSYNC` produces less stuttering, but because of https://github.com/raspberrypi/userland/issues/440, increases CPU power consumption. + +- The option `#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES` can be used in conjunction with `#define USE_GPU_VSYNC` to try to find a middle ground between https://github.com/raspberrypi/userland/issues/440 issues - moderate to little stuttering while not trying to consume too much CPU. Try experimenting with enabling or disabling this setting. + +- There are a number of `#define SAVE_BATTERY_BY_x` options in config.h, which all default to being enabled. These should be safe to use always without tradeoffs. If you are experiencing latency or performance related issues, you can try to toggle these to troubleshoot. + +- The option `#define DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE` does cause a bit of extra CPU usage, so disabling it will lighten up the CPU load a bit. + +- If your SPI display bus is able to run really fast in comparison to the size of the display and the amount of content changing on the screen, you can try enabling `#define UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF` option in `config.h` to reduce CPU usage at the expense of increasing the number of bytes sent over the bus. This has been observed to have a big effect on Pi Zero, so is worth checking out especially there. + +- If the SPI display bus is able to run really really really fast (or you don't care about frame rate, but just about low CPU usage), you can try enabling `#define UPDATE_FRAMES_WITHOUT_DIFFING` option in `config.h` to forgo the adaptive delta diffing option altogether. This will revert to naive full frame updates for absolutely minimum overall CPU usage. + +- The option `#define RUN_WITH_REALTIME_THREAD_PRIORITY` can be enabled to make the driver run at realtime process priority. This can lock up the system however, but still made available for advanced experimentation. + +- In `display.h` there is an option `#define TARGET_FRAME_RATE `. Setting this to a smaller value, such as 30, will trade refresh rate to reduce CPU consumption. + +### About Input Latency + +A pleasing aspect of fbcp-ili9341 is that it introduces very little latency overhead: on a 119Hz refreshing ILI9341 display, [fbcp-ili9341 gets pixels as response from GPIO input to screen in well less than 16.66 msecs](https://www.youtube.com/watch?v=EOICdpjiqv8) time. I only have a 120fps recording camera, so can't easily measure delays shorter than that, but rough statistical estimate of slow motion video footage suggests this delay could be as low as 2-3 msecs, dominated by the ~8.4msecs panel refresh rate of the ILI9341. + +This does not mean that overall input to display latency in games would be so immediate. Briefly testing a NES emulated game in Retropie suggests a total latency of about 60-80 msecs. This latency is caused by the NES game emulator overhead and extra latency added by Linux, DispmanX and GPU rendering, and [GPU framebuffer snapshotting](https://github.com/raspberrypi/userland/issues/440). (If you ran fbcp-ili9341 as a static library bypassing DispmanX and the GPU stack, directly linking your GPIO input and application logic into fbcp-ili9341, you would be able to get down to this few msecs of overall latency, like shown in the above GPIO input video) + +Interestingly, fbcp-ili9341 is about [~33msecs faster than a cheap 3.5" KeDei HDMI display](https://www.youtube.com/watch?v=1yvmvv0KtNs). I do not know if this is a result of the KeDei HDMI display specifically introducing extra latency, or if all HDMI displays connected to the Pi would have similar latency overhead. An interesting question is also how SPI would compare with DPI connected displays on the Pi. + +### About Tearing + +Unfortunately a limitation of SPI connected displays is that the VSYNC line signal is not available on the display controllers when they are running in SPI mode, so it is not possible to do vsync locked updates even if the SPI bus bandwidth on the display was fast enough. For example, the 4 ILI9341 displays I have can all be run faster than 75MHz so SPI bus bandwidth-wise all of them would be able to update a full frame in less than a vsync interval, but it is not possible to synchronize the updates to vsync since the display controllers do not report it. (If you do know of a display that does actually expose a vsync clock signal even in SPI mode, you can try implementing support to locking on to it) + +You can however choose between two distinct types of tearing artifacts: *straight line tearing* and *diagonal tearing*. Whichever looks better is a bit subjective, which is why both options exist. I prefer the straight line tearing artifact, it seems to be less intrusive than the diagonal tearing one. To toggle this, edit the option `#define DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE` in `config.h`. When this option is enabled, fbcp-ili9341 produces straight line tearing, and consumes a tiny few % more CPU power. By default Pi 3B builds with straight line tearing, and Pi Zero with the faster diagonal tearing. Check out the video [Latency and tearing test #2: GPIO input to display latency in fbcp-ili9341 and tearing modes](https://www.youtube.com/watch?v=EOICdpjiqv8) to see in slow motion videos how these two tearing modes look like. + +Another option that is known to affect how the tearing artifact looks like is the internal panel refresh rate. For ILI9341 displays this refresh rate can be adjusted in `ili9341.h`, and this can be set to range between `ILI9341_FRAMERATE_61_HZ` and `ILI9341_FRAMERATE_119_HZ` (default). Slower refresh rates produce less tearing, but have higher input-to-display latency, whereas higher refresh rates will result in the opposite. Again visually the resulting effect is a bit subjective. + +To get tearing free updates, you should use a DPI display, or a good quality HDMI display. Beware that [cheap small 3.5" HDMI displays such as KeDei do also tear](https://www.youtube.com/watch?v=1yvmvv0KtNs) - that is, even if they are controlled via HDMI, they don't actually seem to implement VSYNC timed internal operation. + +### About Smoothness + +Having no vsync is not all bad though, since with the lack of vsync, SPI displays have the opportunity to obtain smoother animation on content that is not updating at 60Hz. It is possible that content on the SPI display will stutter even less than what DPI or HDMI displays on the Pi can currently provide (although I have not been able to test this in detail, except for the KeDei case above). + +The main option that affects smoothness of display updates is the `#define USE_GPU_VSYNC` line in `config.h`. If this is enabled, then the internal Pi GPU HDMI vsync clock is used to drive frames onto the display. The Pi GPU clock runs at a fixed rate that is independent of the content. This rate can be discovered by running `tvservice -s` on the Pi console, and is usually 59Hz or 60Hz. If your application renders at this rate, animation will look smooth, but if not, there will be stuttering. For example playing a PAL NES game that updates at 50Hz with HDMI clock set at 60Hz will cause bad microstuttering in video output if `#define USE_GPU_VSYNC` is enabled. + +If `USE_GPU_VSYNC` is disabled, then a busy spinning GPU frame snapshotting thread is used to drive the updates. This will produce smoother animation in content that does not maintain a fixed 60Hz rate. Especially in OpenTyrian, a game that renders at a fixed 36fps and has slowly scrolling scenery, the stuttering caused by `USE_GPU_VSYNC` is particularly visible. Running on Pi 3B without `USE_GPU_VSYNC` enabled produces visually smoother looking scrolling on an Adafruit 2.8" ILI9341 PiTFT set to update at 119Hz, compared to enabling `USE_GPU_VSYNC` on the same setup. Without `USE_GPU_VSYNC`, the dedicated frame polling loop thread "finds" the 36Hz update rate of the game, and then pushes pixels to the display at this exact rate. This works nicely since SPI displays disregard vsync - the result is that frames are pushed out to the SPI display immediately as they become available, instead of pulling them at a fixed 60Hz rate like HDMI does. + +A drawback is that this kind of polling consumes more CPU time than the vsync option. The extra overhead is around +34% of CPU usage compared to the vsync method. It also requires using a background thread, and because of this, it is not feasible to be used on a single core Pi Zero. [If this polling was unnecessary](https://github.com/raspberrypi/userland/issues/440), this mode would also work on a Pi Zero, and without the added +34% CPU overhead on Pi 3B. See the Known Issues section below for more details. + +![PiTFT display](/framerate_smoothness.jpg "Smoothness statistics") + +There are two other main options that affect frame delivery timings, `#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES` and `#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES`. Check out the video [fbcp-ili9341 frame delivery smoothness test on Pi 3B and Adafruit ILI9341 at 119Hz](https://youtu.be/IqzKT33Rwjc) for a detailed side by side comparison of these different modes. The conclusions drawn from the four tested scenarios in the video are: + +**1. vc_dispmanx_vsync_callback() (top left)**, set `#define USE_GPU_VSYNC` and unset `#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES`: + +This mode uses the DispmanX HDMI vsync signal callback to drive frames to the display. + +Pros: + - least CPU overhead if content runs at 60Hz + - works on Pi Zero + +Cons: + - animation stutters badly on content that is < 60Hz but also on 60Hz content + - excessive +1 vsync interval input to display latency + - wastes CPU overhead if content runs at less than 60Hz + +**2. vc_dispmanx_vsync_callback() + self synchronization (top right)**, set `#define USE_GPU_VSYNC` and `#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES`: + +This mode uses the GPU vsync signal, but also aims to find and synchronize to the edge trigger when content is producing frames. This is the default build mode on Pi Zero. + +Pros: + - works on Pi Zero + - reduced input to display latency compared to previous mode + - content that runs at 60hz stutters less + +Cons: + - content that runs < 60 Hz still stutters badly + - wastes CPU overhead if content runs at less than 60Hz + - consumes slightly extra CPU compared to previous method + +**3. gpu polling thread + sleep heuristic (bottom left)**, unset `#define USE_GPU_VSYNC` and set `#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES`: + +This mode runs a dedicated background thread that drives frames from the GPU to the SPI display. This is the default build mode on Pi 3B. + +Pros: + - smooth animation at all content frame rates + - low input to display latency + +Cons: + - uses excessive CPU time, around +34% more CPU than the vsync signal based approach + - uses excessive GPU time, the VideoCore GPU will be downscaling and snapshotting redundant frames + - when content changes frame rate, has difficulties to adjust quickly - takes a bit of time to ramp to the new frame rate + - requires a continuously running background thread, not feasible on Pi Zero + +**4. gpu polling thread without sleeping (bottom right)**, unset `#define USE_GPU_VSYNC` and unset `#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES`: + +This mode runs the dedicated GPU thread as fast as possible, without attempting to sleep CPU. + +Pros: + - smoothest animation at all content frame rates + - lowest input to display latency + - adapts instantaneously to variable frame rate content + +Cons: + - uses ridiculously much CPU overhead, a full 100% core + - uses ridiculously much GPU overhead, the VideoCore GPU will be very busy downscaling and snapshotting redundant frames + - requires a continuously running background thread, not feasible on Pi Zero + +### Known Issues + +Be aware of the following limitations: + +###### No rendered frame delivery via events from VideoCore IV GPU + - The codebase captures screen framebuffers by snapshotting via the VideoCore `vc_dispmanx_snapshot()` API, and the obtained pixels are then routed on to the SPI-based display. This kind of polling is performed, since there does not exist an event-based mechanism to get new frames from the GPU as they are produced. The result is inefficient and can easily cause stuttering, since different applications produce frames at different paces. **Ideally the code would ask the VideoCore API to receive finished frames in callback notifications immediately after they are rendered**, but this kind of functionality does not exist in the current GPU driver stack. In the absence of such event delivery mechanism, the code has to resort to polling snapshots of the display framebuffer using carefully timed heuristics to balance between keeping latency and stuttering low, while not causing excessive power consumption. These heuristics keep continuously guessing the update rate of the animation on screen, and they have been tuned to ensure that CPU usage goes down to 0% when there is no detected activity on screen, but it is certainly not perfect. This GPU limitation is discussed at https://github.com/raspberrypi/userland/issues/440. If you'd like to see fbcp-ili9341 operation reduce latency, stuttering and power consumption, please throw a (kind!) comment or a thumbs up emoji in that bug thread to share that you care about this, and perhaps Raspberry Pi engineers might pick the improvement up on the development roadmap. If this issue is resolved, all of the `#define USE_GPU_VSYNC`, `#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES` and `#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES` hacks from the previous section could be deleted from the driver, hopefully leading to a best of all worlds scenario without drawbacks. + +###### Screen resize freezes DispmanX + - Currently if one resizes the video frame size at runtime, this causes DispmanX API to go sideways. See https://github.com/raspberrypi/userland/issues/461 for more information. Best workaround is to set the desired screen resolution in `/boot/config.txt` and configure all applications to never change that at runtime. + +###### CPU Turbo is needed for good SPI bus bandwidth + - The speed of the SPI bus is linked to the BCM2835 core frequency. This frequency is at 250MHz by default (on e.g. Pi Zero, 3B and 3B+), and under CPU load, the core turbos up to 400MHz. This turboing directly scales up the SPI bus speed by `400/250=+60%` as well. Therefore when choosing the SPI `CDIV` value to use, one has to pick one that works for both idle and turbo clock speeds. Conversely, the BCM core reverts to non-turbo speed when there is only light CPU load active, and this slows down the display, so if an application is graphically intensive but light on CPU, the SPI display bus does not get a chance to run at maximum speeds. A way to work around this is to force the BCM core to always stay in its turbo state with `force_turbo=1` option in `/boot/config.txt`, but this has an unfortunate effect of causing the ARM CPU to always run in turbo speed as well, consuming excessive amounts of power. At the time of writing, there does not yet exist a good solution to have both power saving and good performance. This limitation is being discussed in more detail at https://github.com/raspberrypi/firmware/issues/992. + +###### Raspbian + 32-bit only(?) + - At the moment fbcp-ili9341 is only likely to work on 32-bit OSes, on Raspbian/Ubuntu/Debian family of distributions, where Broadcom and DispmanX libraries are available. 64-bit operating systems do not currently work (see [issue #43](https://github.com/juj/fbcp-ili9341/issues/43)). It should be possible to port the driver to 64-bit and other OSes, though the amount of work has not been explored. + +For more known issues and limitations, check out the [bug tracker](https://github.com/juj/fbcp-ili9341/issues), especially the entries marked *retired*, for items that are beyond current scope. + +### Statistics Overlay + +By default fbcp-ili9341 builds with a statistics overlay enabled. See the video [fbcp-ili9341 ported to ILI9486 WaveShare 3.5" (B) SpotPear 320x480 SPI display](https://www.youtube.com/watch?v=dqOLIHOjLq4) to find details on what each field means. Build with CMake option `-DSTATISTICS=0` to disable displaying the statistics. You can also try building with CMake option `-DSTATISTICS=2` to show a more detailed frame delivery timings histogram view, see screenshot and video above. + +### FAQ and Troubleshooting + +#### Why is the project named fbcp-ili9341? + +The `fbcp` part in the name means *framebuffer copy*; specifically for the ILI9341 controller. fbcp-ili9341 is not actually a framebuffer copying driver, it does not create a secondary framebuffer that it would copy bytes across to from the primary framebuffer. It is also no longer a driver only for the ILI9341 controller. A more appropriate name might be *userland-raspi-spi-display-driver* or something like that, but the original name stuck. + +#### Does fbcp-ili9341 work on Pi Zero? + +Yes, it does, although not quite as well as on Pi 3B. If you'd like it to run better on a Pi Zero, leave a thumbs up at https://github.com/raspberrypi/userland/issues/440 - hard problems are difficult to justify prioritizing unless it is known that many people care about them. + +#### The driver works well, but image is upside down. How do I rotate the display? + +Enable the option `#define DISPLAY_ROTATE_180_DEGREES` in `config.h`. This should rotate the SPI display to show up the other way around, while keeping the HDMI connected display orientation unchanged. Another option is to utilize a `/boot/config.txt` option [display_rotate=2](https://www.raspberrypi.org/forums/viewtopic.php?t=120793), which rotates both the SPI output and the HDMI output. + +#### How exactly do I edit the build options to e.g. remove the statistics lines or change some other option? + +Edit the file `config.h` in a text editor (a command line one such as `pico`, `vim`, `nano`, or SSH map the drive to your host), and find the appropriate line in the file. Add comment lines `//` in front of that text to disable the option, or remove the `//` characters to enable it. + +After having edited and saved the file, reissue `make -j` in the build directory and restart fbcp-ili9341. + +Some options are passed to the build from the CMake configuration script. You can run with `make VERBOSE=1` to see which configuration items the CMake build is passing. See the above *Configuring Build Options* section to customize the CMake configure items. For example, to remove the statistics overlay, pass `-DSTATISTICS=0` directive to CMake. + +#### bash: cmake: command not found! + +Building requires CMake to be installed on the Pi: try `sudo apt-get install cmake`. + +#### When I change a CMake option on the command line, it does not seem to apply + +Try deleting CMakeCache.txt between changing CMake settings. + +#### Does fbcp-ili9341 work with linux command line terminal or X windowing system? + +Yes, both work fine. For linux command line terminal, the `/dev/tty1` console should be set to output to Linux framebuffer 0 (`/dev/fb0`). This is the default mode of operation and there do not exist other framebuffers in a default distribution of Raspbian, but if you have manually messed with the `con2fbmap` command in your installation, you may have inadvertently changed this configuration. Run `con2fbmap 1` to see which framebuffer the `/dev/tty1` console is outputting to, it should print `console 1 is mapped to framebuffer 0`. Type `con2fbmap 1 0` to reset console 1 back to outputting to framebuffer 0. + +Likewise, the X windowing system should be configured to render to framebuffer 0. This is by default the case. The target framebuffer for X windowing service is usually configured via the `FRAMEBUFFER` environment variable before launching X. If X is not working by default, you can try overriding the framebuffer by launching X with `FRAMEBUFFER=/dev/fb0 startx` instead of just running `startx`. + +#### Does fbcp-ili9341 work on Raspberry Pi 1 or Pi 2? + +I don't know, I don't currently have any to test. Perhaps the code does need some model specific configuration, or perhaps it might work out of the box. I only have Pi 3B, Pi 3B+, Pi Zero W and a Pi 3 Compute Module based systems to experiment on. Pi 2 B has been reported to work by users ([#17](https://github.com/juj/fbcp-ili9341/issues/17)). + +#### Does fbcp-ili9341 work on display XYZ? + +If the display controller is one of the currently tested ones (see the list above), and it is wired up to run using 4-line SPI, then it should work. Pay attention to configure the `Data/Control` GPIO pin number correctly, and also specify the `Reset` GPIO pin number if the device has one. + +If the display controller is not one of the tested ones, it may still work if it is similar to one of the existing ones. For example, ILI9340 and ILI9341 are practically the same controller. You can just try with a specific one to see how it goes. + +If fbcp-ili9341 does not support your display controller, you will have to write support for it. fbcp-ili9341 does not have a "generic SPI TFT driver routine" that might work across multiple devices, but needs specific code for each. If you have the spec sheet available, you can ask for advice, but please do not request to add support to a display controller "blind", that is not possible. + +#### Does fbcp-ili9341 work with 3-wire SPI displays? + +Perhaps. This is a more recent experimental feature that may not be as stable, and there are some limitations, but 3-wire ("9-bit") SPI display support is now available. If you have a 3-wire SPI display, i.e. one that does not have a Data/Control (DC) GPIO pin to connect, configure it via CMake with directive `-DGPIO_TFT_DATA_CONTROL=-1` to tell fbcp-ili9341 that it should be driving the display with 3-wire protocol. + +Current limitations of 3-wire communication are: + - The performance option `ALL_TASKS_SHOULD_DMA` is currently not supported, there is an issue with DMA chaining that prevents this from being enabled. As result, CPU usage on 3-wire displays will be slightly higher than on 4-wire displays. + - The performance option `OFFLOAD_PIXEL_COPY_TO_DMA_CPP` is currently not supported. As a result, 3-wire displays may not work that well on single core Pis like Pi Zero. + - This has only been tested on my Adafruit SSD1351 128x96 RGB OLED display, which can be soldered to operate in 3-wire SPI mode, so testing has not been particularly extensive. + - Displays that have a 16-bit wide command word, such as ILI9486, do not currently work in 3-wire ("17-bit") mode. (But ILI9486L has 8-bit command word, so that does work) + +#### Does fbcp-ili9341 work with I2C, DPI, MIPI DSI or USB connected displays? + +No. Those are completely different technologies altogether. It should be possible to port the driver algorithm to work on I2C however, if someone is interested. + +#### Does fbcp-ili9341 work with touch displays? + +At the moment one cannot utilize the XPT2046/ADS7846 touch controllers while running fbcp-ili9341, so touch is mutually incompatible with this driver. In order for fbcp-ili9341 to function, you will need to remove all `dtoverlay`s in `/boot/config.txt` related to touch. + +#### Is it possible to break my display with this driver if I misconfigure something? + +I have done close to everything possible to my displays - cut power in middle of operation, sent random data and command bytes, set their operating voltage commands and clock timings to arbitrary high and low values, tested unspecified and reserved command fields, and driven the displays dozens of MHz faster than they managed to keep up with, and I have not yet done permanent damage to any of my displays or Pis. + +Easiest way to do permanent damage is to fail at wiring, e.g. drive 5 volts if your display requires 3.3v, or short a connection, or something similar. + +The one thing that fbcp-ili9341 stays clear off is that it does not program the non-volatile memory areas of any of the displays. Therefore a hard power off on a display should clear all performed initialization and reset the display to its initial state at next power on. + +That being said, if it breaks, you'll get to purchase a new shiny one to replace it. + +#### Can I have both the HDMI and SPI connected at the same time? + +Yes, fbcp-ili9341 shows the output of the HDMI display on the SPI screen, and both can be attached at the same time. A HDMI display does not have to be connected however, although fbcp-ili9341 operation will still be affected by whatever HDMI display mode is configured. Check out `tvservice -s` on the command line to check what the current DispmanX HDMI output mode is. + +#### Do I have to show the same image on HDMI output and the SPI display, or can they be different? + +At the moment fbcp-ili9341 has been developed to only display the contents of the main DispmanX GPU framebuffer over to the SPI display. That is, the SPI display will show the same picture as the HDMI output does. There is no technical restriction that requires this though, so if you know C/C++ well, it should be a manageable project to turn fbcp-ili9341 to operate as an offscreen display library to show a completely separate (non-GPU-accelerated) image than what the main HDMI display outputs. For example you could have two different outputs, e.g. a HUD overlay, a dashboard for network statistics, weather, temps, etc. showing on the SPI while having the main Raspberry Pi desktop on the HDMI. + +In this kind of mode, you would probably strip the DispmanX bits out of fbcp-ili9341, and recast it as a static library that you would link to in your drawing application, and instead of snapshotting frames, you can then programmatically write to a framebuffer in memory from your C/C++ code. + +#### I am running fbcp-ili9341 on a display that was listed above, but the display stays white after startup? + +Unfortunately there are a number of things to go wrong that all result in a white screen. This is probably the hardest part to diagnose. Some ideas: + +- double check the wiring, +- double check that the display controller is really what you expected. Trying to drive with the display with wrong initialization code usually results in the display not reacting, and the screen stays white, +- shut down and physically power off the Pi and the display in between multiple tests. Driving a display with a wrong initialization routine may put it in a bad state that needs a physical power off for it to reset, +- if there is a reset pin on the display, make sure to pass it in CMake line. Or alternatively, try driving fbcp-ili9341 without specifying the reset pin, +- make sure the display is configured to run 4-wire SPI mode, and not in parallel mode or 3-wire SPI mode. You may need to solder or desolder some connections or set a jumper to configure the specific driving mode. Support for 3-wire SPI displays does exist, but it is more limited and a bit experimental. + +#### The display stays blank at boot without lighting up + +This suggests that the power line or the backlight line might not be properly connected. Or if the backlight connects to a GPIO pin on the Pi (and not a voltage pin), then it may be that the pin is not in correct state for the backlight to turn on. Most of the LCD TFT displays I have immediately light up their backlight when they receive power. The Tontec one has a backlight GPIO pin that boots up high but must be pulled low to activate the backlight. OLED displays on the other hand seem to stay all black even after they do get power, while waiting for their initialization to be performed, so for OLEDs it may be normal for nothing to show up on the screen immediately after boot. + +If the backlight connects to a GPIO pin, you may need to define `-DGPIO_TFT_BACKLIGHT=` in CMake command line or `config.h`, and edit `config.h` to enable `#define BACKLIGHT_CONTROL`. + +#### The display clears from white to black after starting fbcp-ili9341, but picture does not show up? + +fbcp-ili9341 runs a clear screen command at low speed as first thing after init, so if that goes through, it is a good sign. Try increasing `-DSPI_BUS_CLOCK_DIVISOR=` CMake option to a higher number to see if the display driving rate was too fast. Or try disabling DMA with `-DUSE_DMA_TRANSFERS=OFF` to see if this might be a DMA conflict. + +#### Image does show up on display, but it freezes shortly afterwards + +This suggests same as above, increase SPI bus divisor or troubleshoot disabling DMA. If DMA is detected to be the culprit, try changing up the DMA channels. Double check that `/boot/config.txt` does not have any `dtoverlay`s regarding other SPI display drivers or touch screen controllers, and that it does **NOT** have a `dtparam=spi=on` line in it - fbcp-ili9341 does not use the Linux kernel SPI driver. + +Make sure other `fbcp` programs are not running, or that another copy of `fbcp-ili9341` is not running on the background. + +#### Image does show up on display, but when I start up program XYZ, the image freezes + +This is likely caused by the program resizing the video resolution at runtime, which breaks DispmanX. See https://github.com/raspberrypi/userland/issues/461 for more details. + +#### The display works for some seconds or minutes, but then turns all white or black, or freezes + +Check that the Pi is powered off of a power supply that can keep up with the voltage, and the low voltage icon is not showing up. (remove any `avoid_warnings=1/2` directive from `/boot/config.txt` if that was used to get rid of warnings overlay, to check that voltage is good) It has been observed that if there is not enough power supplied, the display can be the first to starve, while the Pi might keep on running fine. Try removing turbo settings or lowering the clock speed if you have overclocked to verify that the display crash is not power usage related. + +Also try lowering SPI bus speed to a safe lower value, e.g. half of the maximum speed that the display was able to manage. + +#### The driver is updating pixels on the display, but it looks all garbled + +Double check the Data/Command (D/C) GPIO pin physically, and in CMake command line. Whenever fbcp-ili9341 refers to pin numbers, they are always specified in BCM pin numbers. Try setting a higher `-DSPI_BUS_CLOCK_DIVISOR=` value to CMake. Make sure no other `fbcp` programs or SPI drivers or dtoverlays are enabled. + +#### Colors look wrong on the display + +![BGR vs RGB and inverted colors](/wrong_colors.jpg) + +If the color channels are mixed (red is blue, blue is red, green is green) like shown on the left image, pass the CMake option `-DDISPLAY_SWAP_BGR=ON` to the build. + +If the color intensities look wrong (white is black, black is white, color looks like a negative image) like seen in the middle image, pass the CMake option `-DDISPLAY_INVERT_COLORS=ON` to the build. + +If the colors looks off in some other fashion, it is possible that the display is just being driven at a too high SPI bus speed, in which case try making the display run slower by choosing a higher `-DSPI_BUS_CLOCK_DIVISOR=` option to CMake. Especially on ILI9486 displays it has been observed that the colors on the display can become distorted if the display is run too fast beyond its maximum capability. + +#### Failed to allocate GPU memory! + +fbcp-ili9341 needs a few megabytes of GPU memory to function if DMA transfers are enabled. The [gpu_mem](https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md) boot config option dictates how much of the Pi's memory area is allocated to the GPU. By default this is 64MB, which has been observed to not leave enough memory for fbcp-ili9341 if HDMI is run at 1080p. If this error happens, try increasing GPU memory to e.g. 128MB by adding a line `gpu_mem=128` in `/boot/config.txt`. + +#### It does not build, or crashes, or something is obviously out of date + +As the number of supported displays, Raspberry Pi device models, Raspbian/Retropie/Lakka OS versions, accompanied C++ compiler versions and fbcp-ili9341 build options have grown in number, there is a combinatorial explosion of all possible build modes that one can put the codebase through, so it is not easy to keep every possible combo tested all the time. Something may have regressed or gotten outdated. Stay calm, and report a bug. + +You can also try looking through the commit history to find changes related to your configuration combo, to see if there's a mention of a known good commit in time that should work for your case. If you get an odd compiler error on `cmake` or `make` lines, those will usually be very easy to fix, as they are most of the time a result of some configurational oversight. + +#### Which SPI display should I buy to make sure it works best with fbcp-ili9341? + +First, make sure the display is a 4-wire SPI and not a 3-wire one. A display is 4-wire SPI if it has a Data/Control (DC) GPIO line that needs connecting. Sometimes the D/C pin is labeled RS (Register Select). Support for 3-wire SPI displays does exist, but it is experimental and not nearly as well tested as 4-wire displays. + +Second is the consideration about display speed. Below is a performance chart of the different displays I have tested. Note that these are sample sizes of one, I don't know how much sample variance there exists. Also I don't know if it is likely that there exists big differences between displays with same controller from different manufacturers. At least the different ILI9341 displays that I have are all quite consistent on performance, whether they are from Adafruit or WaveShare or from BuyDisplay.com. + +| Vendor | Size | Resolution | Controller | Rated SPI Bus Speed | Obtained Bus Speed | Frame Rate | +| ------ | ---- | ---------- | ---------- | ------------------- | ------------------ | -----------| +| [Adafruit PiTFT](https://www.adafruit.com/product/1601) | 2.8" | 240x320 | ILI9341 | 10MHz | 294MHz/4=73.50MHz | 59.81 fps | +| [Adafruit PiTFT](https://www.adafruit.com/product/2315) | 2.2" | 240x320 | ILI9340 | 15.15MHz | 338MHz/4=84.50MHz | 68.76 fps | +| [Adafruit PiTFT](https://www.adafruit.com/product/2097) | 3.5" | 320x480 | HX8357D | 15.15MHz | 314MHz/6=52.33MHz | 21.29 fps | +| [Adafruit OLED](https://www.adafruit.com/product/1673) | 1.27" | 128x96 | SSD1351 | 20MHz | 360MHz/20=18.00MHz | 91.55 fps | +| [Waveshare RPi LCD (B) IPS](https://www.amazon.co.uk/dp/B01N48NOXI/ref=pe_3187911_185740111_TE_item) | 3.5" | 320x480 | ILI9486 | 15.15MHz | 255MHz/8=31.88MHz | 12.97 fps | +| [maithoga TFT LCD](https://www.aliexpress.com/item/3-5-inch-8P-SPI-TFT-LCD-Color-Screen-Module-ILI9486-Drive-IC-320-480-RGB/32828284227.html) | 3.5" | 320x480 | ILI9486L | 15.15MHz | 400MHz/8=50.00MHz | 13.56 fps* | +| [BuyDisplay.com SPI TFT](https://www.buydisplay.com/default/serial-spi-3-2-inch-tft-lcd-module-display-ili9341-power-than-sainsmart) copy #1 | 3.2" | 240x320 | ILI9341 | 10MHz | 310MHz/4=77.50MHz | 63.07 fps | +| [BuyDisplay.com SPI TFT](https://www.buydisplay.com/default/serial-spi-3-2-inch-tft-lcd-module-display-ili9341-power-than-sainsmart) copy #2 | 3.2" | 240x320 | ILI9341 | 10MHz | 300MHz/4=75.00MHz | 61.03 fps | +| [Arduino A000096 LCD](https://store.arduino.cc/arduino-lcd-screen) | 1.77" | 128x160 | ST7735R | 15.15MHz | 355MHz/6=59.16MHz | 180.56 fps | +| [Tontec MZ61581-PI-EXT 2016.1.28](https://www.ebay.com/p/Tontec-3-5-Inches-Touch-Screen-for-Raspberry-Pi-Display-TFT-Monitor-480x320-LCD/1649448059) | 3.5" | 320x480 | MZ61581 | 128MHz | 280MHz/2=140.00MHz | 56.97 fps | +| [Adafruit 240x240 Wide Angle TFT](https://www.adafruit.com/product/3787) | 1.54" | 240x240 | ST7789 | ? | 340MHz/4=85.00MHz | 92.23 fps | +| [WaveShare 240x240 Display HAT](https://www.waveshare.com/1.3inch-lcd-hat.htm) | 1.3" | 240x240 | ST7789VW | 62.5MHz | 338MHz/4=84.50MHz | 91.69 fps | +| [WaveShare 128x128 Display HAT](https://www.waveshare.com/1.44inch-lcd-hat.htm) | 1.44" | 128x128 | ST7735S | 15.15MHz | (untested) | (untested) | +| [KeDei v6.3](https://github.com/juj/fbcp-ili9341/issues/40) | 3.5" | 320x480 | MPI3501 | ? | 400MHz/12=33.333MHz | 4.8fps ** | + +In this list, *Rated SPI Bus Speed* is the maximum clock speed that the display controller is rated to run at. The *Obtained Bus Speed* column lists the fastest SPI bus speed that was achieved in practice, and the `core_freq` BCM Core speed and SPI Clock Divider `CDIV` setting that was used to achieve that rate. Note how most display controllers can generally be driven much faster than what they are officially rated at in their spec sheets. + +The *Frame Rate* column shows the worst case frame rate when full screen updates are being performed. This occurs for example when watching fullscreen video (that is not a flat colored cartoon). Because fbcp-ili9341 only sends over the pixels that have changed, displays such as HX8357D and ILI9486 can still be used to play many games at 60fps. Retro games work especially well. + +All the ILI9341 displays work nice and super fast at ~70-80MHz. My WaveShare 3.5" 320x480 ILI9486 display runs really slow compared to its pixel resolution, ~32MHz only. See [fbcp-ili9341 ported to ILI9486 WaveShare 3.5" (B) SpotPear 320x480 SPI display](https://www.youtube.com/watch?v=dqOLIHOjLq4) for a video of this display in action. Adafruit's 320x480 3.5" HX8357D PiTFTs is ~64% faster in comparison. + +The ILI9486L controller based maithoga display runs a bit faster than ILI9486 WaveShare, 50MHz versus 31.88MHz, i.e. +56.8% bandwidth increase. However fps-wise maithoga reaches only 13.56 vs WaveShare 12.97 fps, because the bandwidth advantage is fully lost in pixel format differences: ILI9486L requires transmitting 24 bits per each pixel (R6G6B6 mode), whereas ILI9486 supports 16 bits per pixel R5G6B5 mode. This is reflected in the above chart refresh rate for the maithoga display (marked with a star). + +If manufacturing variances turn out not to be high between copies, and you'd like to have a bigger 320x480 display instead of a 240x320 one, then it is recommended to avoid ILI9486, they indeed are slow. + +The KeDei v6.3 display with MPI3501 controller takes the crown of being horrible, in all aspects imaginable. It is able to run at 33.33 MHz, but due to technical design limitations of the display (see [#40](https://github.com/juj/fbcp-ili9341/issues/40#issuecomment-441480557)), effective bus speed is halved, and only about 72% utilization of the remaining bus rate is achieved. DMA cannot be used, so CPU usage will be off the charts. Even though fbcp-ili9341 supports this display, level of support is expected to be poor, because the hardware design is a closed secret without open documentation publicly available from the manufacturer. Stay clear of KeDei or MPI3501 displays. + +The Tontec MZ61581 controller based 320x480 3.5" display on the other hand can be driven insanely fast at up to 140MHz! These seem to be quite hard to come by though and they are expensive. Tontec seems to have gone out of business and for example the domain itontec.com from which the supplied instructions sheet asks to download original drivers from is no longer registered. I was able to find one from eBay for testing. + +Search around, or ask the manufacturer of the display what the maximum SPI bus speed is for the device. This is the most important aspect to getting good frame rates, but unfortunately most web links never state the SPI speed rating, or they state it ridiculously low like in the spec sheets. Try and buy to see, or ask in some community forums from people who already have a particular display to find out what SPI bus speed it can achieve. + +One might think that since Pi Zero is slower than a Pi 3, the SPI bus speed might not matter as much when running on a Pi Zero, but the effect is rather the opposite. To get good framerates on a Pi Zero, it should be paired with a display with as high SPI bus speed capability as possible. This is because the higher the SPI bus speed is, the more autonomously a DMA controller can drive it without CPU intervention. For the same reason, the interlacing technique does not (currently at least) perform well on a Pi Zero, so it is disabled there by default. ILI9341s run well on Pi Zero, ILI9486 on the other hand is quite difficult to combine with a Pi Zero. + +Ultimately, it should be noted that parallel displays (DPI) are the proper method for getting fast framerates easily. SPI displays should only be preferred if display form factor is important and a desired product might only exist as SPI and not as DPI, or the number of GPIO pins that are available on the Pi is scarce that sacrificing dozens of pins to RGB data is not feasible. + +#### What other options/alternatives do I have to fbcp-ili9341? + +Hardware-wise, there are six different ways to connect displays to the Pi. Here are the pros and cons of each: + +1. [Composite video]([https://en.wikipedia.org/wiki/Composite_video](https://en.wikipedia.org/wiki/Composite_video)) + - +simple one-wire connectivity + - +the Pi GPU drives the signal on its own without CPU assistance, no driver needed + - +has vsync, no tearing artifacts + - +available for a cheap price + - -low quality analog signal that is blurry and has color artifacts +2. [I²C (Inter-Integrated Circuit)]([https://en.wikipedia.org/wiki/I%C2%B2C](https://en.wikipedia.org/wiki/I%C2%B2C)) + - +fewest amount of digital signals (two): SDA (data) and SCL (clock) + - +available for a cheap price + - -slowest bandwidth, generally only the smallest displays with low resolution utilize this + - -need software CPU cycles to push pixels to display + - -no video vsync, causes tearing artifacts +3. [SPI (Serial Peripheral Interface)]([https://en.wikipedia.org/wiki/Serial_Peripheral_Interface](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface)) + - the method used/supported by this driver + - +only few digital signal lines needed: SCLK (clock), MOSI (data), D/C (data/command) (MISO line is not read by fbcp-ili9341), CS (Chip Select) (sometimes optional) + - +much faster than I²C + - +very low video display latency + - +available for a cheap price + - -no single pin or protocol standard, be careful about hardware compatibility + - -need software CPU cycles to push pixels to display + - -no video vsync, causes tearing artifacts + - -low resolution, generally 480x320 or smaller +4. [DPI (Display Parallel Interface)]([https://www.raspberrypi.org/documentation/hardware/raspberrypi/dpi/README.md](https://www.raspberrypi.org/documentation/hardware/raspberrypi/dpi/README.md)) + - +high quality digital signal driven directly by the Pi GPU without CPU assistance + - +fixed 60hz updates without missed frames + - +has vsync, no tearing artifacts + - -no single pin or protocol standard, be careful about hardware compatibility + - -consumes most of the pins on the Pi GPIO header (20-28 digital signal pins) + - -no ability to disable vsync, likely more video latency than SPI +5. [MIPI-DSI (Display Serial Interface)]([https://en.wikipedia.org/wiki/Display_Serial_Interface](https://en.wikipedia.org/wiki/Display_Serial_Interface)) + - +high quality digital signal driven directly by the Pi GPU without CPU assistance + - +fixed 60hz updates without missed frames + - +has vsync, no tearing artifacts + - +does not require GPIO pins, leaving them free for other use + - +available in high resolution + - [-uses proprietary DSI connectivity on the Pi, not an open ecosystem]([https://www.raspberrypi.org/forums/viewtopic.php?t=153954](https://www.raspberrypi.org/forums/viewtopic.php?t=153954)) + - [-only one official display exists]([https://www.raspberrypi.org/documentation/hardware/display/](https://www.raspberrypi.org/documentation/hardware/display/)) +6. [HDMI]([https://en.wikipedia.org/wiki/HDMI](https://en.wikipedia.org/wiki/HDMI)) + - +high quality digital signal driven directly by the Pi GPU without CPU assistance + - +fixed 60hz updates without missed frames + - +has vsync, no tearing artifacts + - +does not require GPIO pins, leaving them free for other use + - +very standard, little configuration needed in /boot/config.txt + - +available in high resolution + - -bulky connector for most portable designs + +Displays are generally manufactured to utilize one specific interfacing method, with the exception that some displays have a both I²C and SPI modes that can be configured via soldering. + +Fbcp-ili9341 driver is about interfacing with SPI displays. If your display utilizes some other connection mechanism, fbcp-ili9341 will not apply. + +Software-wise, there are two possible alternatives to fbcp-ili9341: + +1. [notro/fbtft](https://github.com/notro/fbtft) + [tasanakorn/rpi-fbcp](https://github.com/tasanakorn/rpi-fbcp) +2. Use an ad hoc drawing library that provides both drawing primitives plus the display interface, e.g. [adafruit/Adafruit_Python_ILI9341](https://github.com/adafruit/Adafruit_Python_ILI9341). + +### Resources + +The following links proved helpful when writing this: + - [ARM BCM2835 Peripherals Manual PDF](https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf), + - [ILI9341 Display Controller Manual PDF](https://cdn-shop.adafruit.com/datasheets/ILI9341.pdf), + - [notro/fbtft](https://github.com/notro/fbtft): Linux Framebuffer drivers for small TFT LCD display modules, + - [BCM2835 driver](http://www.airspayce.com/mikem/bcm2835/) for Raspberry Pi, + - [tasanakorn/rpi-fbcp](https://github.com/tasanakorn/rpi-fbcp), original framebuffer driver, + - [tasanakorn/rpi-fbcp/#16](https://github.com/tasanakorn/rpi-fbcp/issues/16), discussion about performance, + - [Tomáš Suk, Cyril Höschl IV, and Jan Flusser, Rectangular Decomposition of Binary Images.](http://library.utia.cas.cz/separaty/2012/ZOI/suk-rectangular%20decomposition%20of%20binary%20images.pdf), a useful research paper about merging monochrome bitmap images to rectangles, which gave good ideas for optimizing SPI span merges across multiple scan lines, + - [VC DispmanX source code](https://github.com/raspberrypi/userland/blob/master/interface/vmcs_host/vc_vchi_dispmanx.c) (more or less the only official documentation bit on DispmanX I could ever find) + +### I Want To Contribute / Future Work / TODOs + +If you would like to help push Raspberry Pi SPI display support further, there are always more things to do in the project. Here is a list of ideas and TODOs for recognized work items to contribute, roughly rated in order of increasing difficulty. + + - Vote up issue [raspberrypi/userland/#440](https://github.com/raspberrypi/userland/issues/440) if you would like to see Raspberry Pi Foundation improve CPU performance and reduce latency of the Pi when used with SPI displays. + - Vote up issue [raspberrypi/userland/#461](https://github.com/raspberrypi/userland/issues/461) if you would like to see fbcp-ili9341 not die (due to DispmanX dying) when HDMI display resolution changes. + - Vote up issue [raspberrypi/firmware/#992](https://github.com/raspberrypi/firmware/issues/992) if you would like to see Raspberry Pi SPI bus to have high throughput even when the Pi CPU is not under heavy CPU load (better SPI throughput with lower power consumption), a performance feature only SDHOST on the Pi currently enjoys. + - Benchmark fbcp-ili9341 performance in your use case with CPU tool `top`/`htop`, or with a power meter off the wall and report the results. + - Do you have a display with an unlisted or unknown display controller? Post close up photos of it to an issue in the tracker, and report if you were able to make it work with fbcp-ili9341? + - Did you have to do something unexpected or undocumented to get fbcp-ili9341 to work in your environment or use case? Write up a tutorial or record a video to let people know about the gotchas. + - If you have access to a high frequency scope/logic analyzer (~128MHz), audit the utilization of the SPI MOSI bus to find any remaining idle times on the bus, and analyze their sources. + - Port fbcp-ili9341 to work as a static code library that one can link to another application for CPU-based drawing directly to display, bypassing inefficiencies and latency of the general purpose Linux DispmanX/graphics stack. + - Improve existing display initialization routines with options to control e.g. gamma curves, color saturation, driving voltages, refresh rates or other potentially useful features that the display controller protocols expose. + - Add support to fbcp-ili9341 to a new display controller. (e.g. [#26](https://github.com/juj/fbcp-ili9341/issues/26)) + - Implement support for reading the MISO line for display identification numbers/strings for potentially interesting statistics (could some of the displays be autodetected this way?) + - Add support for other color modes, like RGB666 or RGB888. Currently fbcp-ili9341 only knows about RGB565 display mode. + - Implement a kernel module that enables userland programs to allocate DMA channels, which fbcp-ili9341 could use to amicably reserve its own DMA channels without danger of conflicting. + - Implement support for touch control while fbcp-ili9341 is active. ([#33](https://github.com/juj/fbcp-ili9341/issues/33)) + - Implement support for SPI-based SD card readers that are sometimes attached to displays. + - Port fbcp-ili9341 to work with I2C displays. + - Port more key algorithms to ARM assembly to optimize performance of fbcp-ili9341 in hotspots, or optimize execution in some other ways? + - Add support to building fbcp-ili9341 on another operating system than Raspbian. (see [#43](https://github.com/juj/fbcp-ili9341/issues/43)) + - Add support for building on 64-bit operating systems. (see [#43](https://github.com/juj/fbcp-ili9341/issues/43)) + - Port fbcp-ili9341 over to a new single-board computer hardware. (e.g. [#30](https://github.com/juj/fbcp-ili9341/issues/30)) + - Improve support for 3-wire displays, e.g. for 1) "17-bit" 3-wire communication, 2) fix up `SPI_3WIRE_PROTOCOL` + `ALL_TASKS_SHOULD_DMA` to work together, or 3) fix up `SPI_3WIRE_PROTOCOL` + `OFFLOAD_PIXEL_COPY_TO_DMA_CPP` to work together. + - Optimize away unnecessary zero padding that 3-wire communication currently incurs, by keeping a queue of leftover untransmitted partial bits of a byte, and piggybacking them onto the next transfer that comes in. + - Port the high performance DMA-based SPI communication technique from fbcp-ili9341 over to another project that uses the SPI bus for something else, for close to 100% saturation of the SPI bus in the project. + - Improve the implementation of chaining DMA transfers to not only chain transfers within a single SPI task, but also across multiple SPI tasks. + - Optimize `ALL_TASKS_SHOULD_DMA` mode to be always superior in performance and CPU usage so that the non-`ALL_TASKS_SHOULD_DMA` path can be dropped from the codebase. (probably requires the above chaining to function efficiently) + - If you are knowledgeable with BCM2835 DMA, investigate whether the hacky dance where two DMA channels need to be used to reset and resume DMA SPI transfers when chaining, can be avoided? + - If you have contacts with Broadcom, ask them to promote use of the SoC hardware with DMA chaining + mixed SPI & non-SPI tasks as a first class tested use case. Current DMA SPI hardware behavior of BCM2835 is, to say the least, surprising. + +### License + +This driver is licensed under the MIT License. See LICENSE.txt. In nonlegal terms, it's yours for both free and commercial projects, DIY packages, kickstarters, Etsys and Ebays, and you don't owe back a dime. Feel free to apply and derive as you wish. + +If you found fbcp-ili9341 useful, it makes me happy to hear back about the projects it found a home in. If you did a build or a project where fbcp-ili9341 worked out, it'd be great to see a video or some photos or read about your experiences. + +I hope you build something you enjoy! + +### Donating + +I have been occassionally asked how to make a donation as a thank you for the work, so here is a PayPal link: + +[![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=DD8A74WY6Q4L2¤cy_code=EUR) + +Please note that a contribution is not expected, and you are free to use, publicize and redistribute the driver even without a payment. + +### Contacting + +Best way to discuss the driver is to open a GitHub issue. You may also be able to find me over at [sudomod.com Discord channel](https://sudomod.com/forum/viewtopic.php?f=42&t=438&sid=b868bb95ab5c3035b7810c71278637c6). diff --git a/usr/fbcp-ili9341/config.h b/usr/fbcp-ili9341/config.h new file mode 100644 index 0000000..afa2104 --- /dev/null +++ b/usr/fbcp-ili9341/config.h @@ -0,0 +1,242 @@ +#pragma once + +// Build options: Uncomment any of these, or set at the command line to configure: + +// If defined, renders a performance overlay on top of the screen. This option is passed from CMake +// configuration script. If you are getting statistics printed on screen +// even when this is uncommented, pass -DSTATISTICS=0 to CMake invocation line. You can also try +// building with +// 'make VERBOSE=1' +// to see which config flags are coming from CMake to the build. +// #define STATISTICS + +// How often the on-screen statistics is refreshed (in usecs) +#define STATISTICS_REFRESH_INTERVAL 200000 +// How many usecs worth of past frame rate data do we preserve in the history buffer. Higher values +// make the frame rate display counter smoother and respond to changes with a delay, whereas smaller +// values can make the display fluctuate a bit erratically. +#define FRAMERATE_HISTORY_LENGTH 400000 + +// If enabled, displays a visual graph of frame completion times +// #define FRAME_COMPLETION_TIME_STATISTICS + +// If defined, no sleeps are specified and the code runs as fast as possible. This should not improve +// performance, as the code has been developed with the mindset that sleeping should only occur at +// times when there is no work to do, rather than sleeping to reduce power usage. The only expected +// effect of this is that CPU usage shoots to 200%, while display update FPS is the same. Present +// here to allow toggling to debug this assumption. +// #define NO_THROTTLING + +// If defined, display updates are synced to the vsync signal provided by the VideoCore GPU. That seems +// to occur quite precisely at 60 Hz. Testing on PAL NES games that run at 50Hz, this will not work well, +// since they produce new frames at every 20msecs, and the VideoCore functions for snapshotting also will +// output new frames at this vsync-detached interval, so there's a 50 Hz vs 60 Hz mismatch that results +// in visible microstuttering. Still, providing this as an option, this might be good for content that +// is known to run at native 60Hz. +// #define USE_GPU_VSYNC + +// Always enable GPU VSync on the Pi Zero. Even though it is suboptimal and can cause stuttering, it saves battery. +#if defined(SINGLE_CORE_BOARD) + +#if !defined(USE_GPU_VSYNC) +#define USE_GPU_VSYNC +#endif + +#else // Multicore Pi boards (Pi 2, 3) + +// If defined, communication with the SPI bus is handled with a dedicated thread. On the Pi Zero, this does +// not gain much, since it only has one hardware thread. +#define USE_SPI_THREAD + +// If USE_GPU_VSYNC is defined, then enabling this causes new frames to be snapshot more often than at +// TARGET_FRAME_RATE interval to try to keep up smoother 60fps instead of stuttering. Consumes more CPU. +#define SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES + +#endif + +// If enabled, the source video frame is not scaled to fit to the screen, but instead if the source frame +// is bigger than the SPI display, then content is cropped away, i.e. the source is displayed "centered" +// on the SPI screen: +// #define DISPLAY_CROPPED_INSTEAD_OF_SCALING + +// If enabled, the main thread and SPI thread are executed with realtime priority +// #define RUN_WITH_REALTIME_THREAD_PRIORITY + +// If defined, progressive updating is always used (at the expense of slowing down refresh rate if it's +// too much for the display to handle) +// #define NO_INTERLACING + +#if (defined(FREEPLAYTECH_WAVESHARE32B) || (defined(ILI9341) && SPI_BUS_CLOCK_DIVISOR <= 4)) && defined(USE_DMA_TRANSFERS) && !defined(NO_INTERLACING) +// The Freeplaytech CM3/Zero displays actually only have a visible display resolution of 302x202, instead of +// 320x240, and this is enough to give them full progressive 320x240x60fps without ever resorting to +// interlacing. Also, ILI9341 displays running with clock divisor of 4 have enough bandwidth to never need +// interlacing either. +#define NO_INTERLACING +#endif + +// If defined, all frames are always rendered as interlaced, and never use progressive rendering. +// #define ALWAYS_INTERLACING + +// By default, if the SPI bus is idle after rendering an interlaced frame, but the GPU has not yet produced +// a new application frame to be displayed, the same frame will be rendered again for its other field. +// Define this option to disable this behavior, in which case when an interlaced frame is rendered, the +// remaining other field half of the image will never be uploaded. +// #define THROTTLE_INTERLACING + +// The ILI9486 has to resort to interlacing as a rule rather than exception, and it works much smoother +// when applying throttling to interlacing, so enable it by default there. +#if defined(ILI9486) || defined(HX8357D) +#define THROTTLE_INTERLACING +#endif + +// If defined, DMA usage is foremost used to save power consumption and CPU usage. If not defined, +// DMA usage is tailored towards maximum performance. +// #define ALL_TASKS_SHOULD_DMA + +// If defined, screen updates are performed in strictly one update rectangle per frame. +// This reduces CPU consumption at the expense of sending more pixels. You can try enabling this +// if your SPI display runs at a good high SPI bus MHz speed with respect to the screen resolution. +// Useful on Pi Zero W and ILI9341 to conserve CPU power. If this is not defined, the default much +// more powerful diffing algorithm is used, which sends far fewer pixels each frame, (but that diffing +// costs more CPU time). Enabling this requires that ALL_TASKS_SHOULD_DMA is also enabled. +// #define UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF + +// If UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF is used, controls whether the generated tasks are aligned for +// ARMv6 cache lines. This is good to be enabled for ARMv6 Pis, doesn't make much difference on ARMv7 and ARMv8 Pis. +#define ALIGN_DIFF_TASKS_FOR_32B_CACHE_LINES + +// If defined, screen updates are performend without performing diffing at all, i.e. by doing +// full updates. This is very lightweight on CPU, but excessive on the SPI bus. Enabling this +// requires that ALL_TASKS_SHOULD_DMA is also enabled. +// #define UPDATE_FRAMES_WITHOUT_DIFFING + +#if defined(SINGLE_CORE_BOARD) && defined(USE_DMA_TRANSFERS) && !defined(SPI_3WIRE_PROTOCOL) // TODO: 3-wire SPI displays are not yet compatible with ALL_TASKS_SHOULD_DMA option. +// These are prerequisites for good performance on Pi Zero +#ifndef ALL_TASKS_SHOULD_DMA +#define ALL_TASKS_SHOULD_DMA +#endif +#ifndef NO_INTERLACING +#define NO_INTERLACING +#endif +// This saves a lot of CPU, but if you don't care and your SPI display does not have much bandwidth, try uncommenting this for more performant +// screen updates +#ifndef UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF +#define UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF +#endif +#endif + +// If per-pixel diffing is enabled (neither UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF or UPDATE_FRAMES_WITHOUT_DIFFING +// are enabled), the following variable controls whether to lean towards more precise pixel diffing, or faster, but +// coarser pixel diffing. Coarse method is twice as fast than the precise method, but submits slightly more pixels. +// In most cases it is better to use the coarse method, since the increase in pixel counts is small (~5%-10%), +// so enabled by default. If your display is very constrained on SPI bus speed, and don't mind increased +// CPU consumption, comment this out to use the precise algorithm. +#if !defined(ALL_TASKS_SHOULD_DMA) // At the moment the coarse method is not good at producing long spans, so disable if all tasks should DMA +#define FAST_BUT_COARSE_PIXEL_DIFF +#endif + +#if defined(ALL_TASKS_SHOULD_DMA) +// This makes all submitted tasks go through DMA, and not use a hybrid Polled SPI + DMA approach. +#define ALIGN_TASKS_FOR_DMA_TRANSFERS +#endif + +// If defined, the GPU polling thread will be put to sleep for 1/TARGET_FRAMERATE seconds after receiving +// each new GPU frame, to wait for the earliest moment that the next frame could arrive. +#define SAVE_BATTERY_BY_SLEEPING_UNTIL_TARGET_FRAME + +// Detects when the activity on the screen is mostly idle, and goes to low power mode, in which new +// frames will be polled first at 10fps, and ultimately at only 2fps. +#define SAVE_BATTERY_BY_SLEEPING_WHEN_IDLE + +// Builds a histogram of observed frame intervals and uses that to sync to a known update rate. This aims +// to detect if an application uses a non-60Hz update rate, and synchronizes to that instead. +#define SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES + +// If defined, rotates the display 180 degrees. This might not rotate the panel scan order though, +// so adding this can cause up to one vsync worth of extra display latency. It is best to avoid this and +// install the display in its natural rotation order, if possible. +// #define DISPLAY_ROTATE_180_DEGREES + +// If defined, displays in landscape. Undefine to display in portrait. When changing this, swap +// values of DISPLAY_WIDTH and DISPLAY_HEIGHT accordingly +#define DISPLAY_OUTPUT_LANDSCAPE + +// If defined, the source video frame is scaled to fit the SPI display by stretching to fit, ignoring +// aspect ratio. Enabling this will cause e.g. 16:9 1080p source to be stretched to fully cover +// a 4:3 320x240 display. If disabled, scaling is performed preserving aspect ratio, so letterboxes or +// pillarboxes will be introduced if needed to retain proper width and height proportions. +// #define DISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING + +// If defined, reverses RGB<->BGR color subpixel order. This is something that seems to be display panel +// specific, rather than display controller specific, and displays manufactured with the same controller +// can have different subpixel order (without the controller taking it automatically into account). +// If display colors come out reversed in blue vs red channels, define this to swap the two. +// #define DISPLAY_SWAP_BGR + +// If defined, inverts display pixel colors (31=black, 0=white). Default is to have (0=black, 31=white) +// Pass this if the colors look like a photo negative of the actual image. +// #define DISPLAY_INVERT_COLORS + +// If defined, flipping the display between portrait<->landscape is done in software, rather than +// asking the display controller to adjust its RAM write direction. +// Doing the flip in software reduces tearing, since neither the ILI9341 nor ILI9486 displays (and +// probably no other displays in existence?) allow one to adjust the direction that the scanline refresh +// cycle runs in, but the scanline refresh always runs in portrait mode in these displays. Not having +// this defined reduces CPU usage at the expense of more tearing, although it is debatable which +// effect is better - this can be subjective. Impact is around 0.5-1.0msec of extra CPU time. +// DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE disabled: diagonal tearing +// DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE enabled: traditional no-vsync tearing (tear line runs in portrait +// i.e. narrow direction) +#if !defined(SINGLE_CORE_BOARD) +#define DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE +#endif + +// If enabled, build to utilize DMA transfers to communicate with the SPI peripheral. Otherwise polling +// writes will be performed (possibly with interrupts, if using kernel side driver module) +// #define USE_DMA_TRANSFERS + +// If defined, enables code to manage the backlight. +// #define BACKLIGHT_CONTROL + +#if defined(BACKLIGHT_CONTROL) + +// If enabled, reads keyboard for input events to detect when the system has gone inactive and backlight +// can be turned off +#define BACKLIGHT_CONTROL_FROM_KEYBOARD + +// This device file is used to capture keyboard input. This may be "/dev/input/event0" or something else +// on some Pis +#define KEYBOARD_INPUT_FILE "/dev/input/event1" + +// If enabled, the display backlight will be turned off after this many usecs of no activity on screen. +#define TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY (1 * 60 * 1000000) + +#endif + +// If defined, enable a low battery icon triggered by a GPIO pin whose BCM number is given. +// #define LOW_BATTERY_PIN 19 + +// Which state of the LOW_BATTERY_PIN is considered to be low battery. Note that the GPIO pin must be +// in the correct state (input with pull-up/pull-down resistor) before the program is started. +#define LOW_BATTERY_IS_ACTIVE_HIGH 0 + +// Polling interval (in micro-second) for the low battery pin. +#define LOW_BATTERY_POLLING_INTERVAL 1000000 + +// If less than this much % of the screen changes per frame, the screen is considered to be inactive, and +// the display backlight can automatically turn off, if TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY is +// defined. +#define DISPLAY_CONSIDERED_INACTIVE_PERCENTAGE (5.0 / 100.0) + +#ifndef KERNEL_MODULE + +// Define this if building the client side program to run against the kernel driver module, rather than +// as a self-contained userland program. +// #define KERNEL_MODULE_CLIENT + +#endif + +// Experimental/debugging: If defined, let the userland side program create and run the SPI peripheral +// driving thread. Otherwise, let the kernel drive SPI (e.g. via interrupts or its own thread) +// This should be unset, only available for debugging. +// #define KERNEL_MODULE_CLIENT_DRIVES diff --git a/usr/fbcp-ili9341/diff.cpp b/usr/fbcp-ili9341/diff.cpp new file mode 100644 index 0000000..8966a15 --- /dev/null +++ b/usr/fbcp-ili9341/diff.cpp @@ -0,0 +1,490 @@ +#include "config.h" +#include "diff.h" +#include "util.h" +#include "display.h" +#include "gpu.h" +#include "spi.h" + +Span *spans = 0; + +#ifdef UPDATE_FRAMES_WITHOUT_DIFFING +// Naive non-diffing functionality: just submit the whole display contents +void NoDiffChangedRectangle(Span *&head) +{ + head = spans; + head->x = 0; + head->endX = head->lastScanEndX = gpuFrameWidth; + head->y = 0; + head->endY = gpuFrameHeight; + head->size = gpuFrameWidth*gpuFrameHeight; + head->next = 0; +} +#endif + +#ifdef UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF +// Coarse diffing of two framebuffers with tight stride, 16 pixels at a time +// Finds the first changed pixel, coarse result aligned down to 8 pixels boundary +static int coarse_linear_diff(uint16_t *framebuffer, uint16_t *prevFramebuffer, uint16_t *framebufferEnd) +{ + uint16_t *endPtr; + asm volatile( + "mov r0, %[framebufferEnd]\n" // r0 <- pointer to end of current framebuffer + "mov r1, %[framebuffer]\n" // r1 <- current framebuffer + "mov r2, %[prevFramebuffer]\n" // r2 <- framebuffer of previous frame + + "start_%=:\n" + "pld [r1, #128]\n" // preload data caches for both current and previous framebuffers 128 bytes ahead of time + "pld [r2, #128]\n" + + "ldmia r1!, {r3,r4,r5,r6}\n" // load 4x32-bit elements (8 pixels) of current framebuffer + "ldmia r2!, {r7,r8,r9,r10}\n" // load corresponding 4x32-bit elements (8 pixels) of previous framebuffer + "cmp r3, r7\n" // compare all 8 pixels if they are different + "cmpeq r4, r8\n" + "cmpeq r5, r9\n" + "cmpeq r6, r10\n" + "bne end_%=\n" // if we found a difference, we are done + + // Unroll once for another set of 4x32-bit elements. On Raspberry Pi Zero, data cache line is 32 bytes in size, so one iteration + // of the loop computes a single data cache line, with preloads in place at the top. + "ldmia r1!, {r3,r4,r5,r6}\n" + "ldmia r2!, {r7,r8,r9,r10}\n" + "cmp r3, r7\n" + "cmpeq r4, r8\n" + "cmpeq r5, r9\n" + "cmpeq r6, r10\n" + "bne end_%=\n" // if we found a difference, we are done + + "cmp r0, r1\n" // framebuffer == framebufferEnd? did we finish through the array? + "bne start_%=\n" + "b done_%=\n" + + "end_%=:\n" + "sub r1, r1, #16\n" // ldmia r1! increments r1 after load, so subtract back the last increment in order to not shoot past the first changed pixels + + "done_%=:\n" + "mov %[endPtr], r1\n" // output endPtr back to C code + : [endPtr]"=r"(endPtr) + : [framebuffer]"r"(framebuffer), [prevFramebuffer]"r"(prevFramebuffer), [framebufferEnd]"r"(framebufferEnd) + : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "cc" + ); + return endPtr - framebuffer; +} + +// Same as coarse_linear_diff, but finds the last changed pixel in linear order instead of first, i.e. +// Finds the last changed pixel, coarse result aligned up to 8 pixels boundary +static int coarse_backwards_linear_diff(uint16_t *framebuffer, uint16_t *prevFramebuffer, uint16_t *framebufferEnd) +{ + uint16_t *endPtr; + asm volatile( + "mov r0, %[framebufferBegin]\n" // r0 <- pointer to beginning of current framebuffer + "mov r1, %[framebuffer]\n" // r1 <- current framebuffer (starting from end of framebuffer) + "mov r2, %[prevFramebuffer]\n" // r2 <- framebuffer of previous frame (starting from end of framebuffer) + + "start_%=:\n" + "pld [r1, #-128]\n" // preload data caches for both current and previous framebuffers 128 bytes ahead of time + "pld [r2, #-128]\n" + + "ldmdb r1!, {r3,r4,r5,r6}\n" // load 4x32-bit elements (8 pixels) of current framebuffer + "ldmdb r2!, {r7,r8,r9,r10}\n" // load corresponding 4x32-bit elements (8 pixels) of previous framebuffer + "cmp r3, r7\n" // compare all 8 pixels if they are different + "cmpeq r4, r8\n" + "cmpeq r5, r9\n" + "cmpeq r6, r10\n" + "bne end_%=\n" // if we found a difference, we are done + + // Unroll once for another set of 4x32-bit elements. On Raspberry Pi Zero, data cache line is 32 bytes in size, so one iteration + // of the loop computes a single data cache line, with preloads in place at the top. + "ldmdb r1!, {r3,r4,r5,r6}\n" + "ldmdb r2!, {r7,r8,r9,r10}\n" + "cmp r3, r7\n" + "cmpeq r4, r8\n" + "cmpeq r5, r9\n" + "cmpeq r6, r10\n" + "bne end_%=\n" // if we found a difference, we are done + + "cmp r0, r1\n" // framebuffer == framebufferEnd? did we finish through the array? + "bne start_%=\n" + "b done_%=\n" + + "end_%=:\n" + "add r1, r1, #16\n" // ldmdb r1! decrements r1 before load, so add back the last decrement in order to not shoot past the first changed pixels + + "done_%=:\n" + "mov %[endPtr], r1\n" // output endPtr back to C code + : [endPtr]"=r"(endPtr) + : [framebuffer]"r"(framebufferEnd), [prevFramebuffer]"r"(prevFramebuffer+(framebufferEnd-framebuffer)), [framebufferBegin]"r"(framebuffer) + : "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "cc" + ); + return endPtr - framebuffer; +} + +void DiffFramebuffersToSingleChangedRectangle(uint16_t *framebuffer, uint16_t *prevFramebuffer, Span *&head) +{ + int minY = 0; + int minX = -1; + + const int stride = gpuFramebufferScanlineStrideBytes>>1; // Stride as uint16 elements. + const int WidthAligned4 = (uint32_t)gpuFrameWidth & ~3u; + + uint16_t *scanline = framebuffer; + uint16_t *prevScanline = prevFramebuffer; + + static const bool framebufferSizeCompatibleWithCoarseDiff = gpuFramebufferScanlineStrideBytes == gpuFrameWidth*2 && gpuFramebufferScanlineStrideBytes*gpuFrameHeight % 32 == 0; + if (framebufferSizeCompatibleWithCoarseDiff) + { + int numPixels = gpuFrameWidth*gpuFrameHeight; + int firstDiff = coarse_linear_diff(framebuffer, prevFramebuffer, framebuffer + numPixels); + if (firstDiff == numPixels) + return; // No pixels changed, nothing to do. + // Coarse diff computes a diff at 8 adjacent pixels at a time, and returns the point to the 8-pixel aligned coordinate where the pixels began to differ. + // Compute the precise diff position here. + while(framebuffer[firstDiff] == prevFramebuffer[firstDiff]) ++firstDiff; + minX = firstDiff % gpuFrameWidth; + minY = firstDiff / gpuFrameWidth; + } + else + { + while(minY < gpuFrameHeight) + { + int x = 0; + // diff 4 pixels at a time + for(; x < WidthAligned4; x += 4) + { + uint64_t diff = *(uint64_t*)(scanline+x) ^ *(uint64_t*)(prevScanline+x); + if (diff) + { + minX = x + (__builtin_ctzll(diff) >> 4); + goto found_top; + } + } + // tail unaligned 0-3 pixels one by one + for(; x < gpuFrameWidth; ++x) + { + uint16_t diff = *(scanline+x) ^ *(prevScanline+x); + if (diff) + { + minX = x; + goto found_top; + } + } + scanline += stride; + prevScanline += stride; + ++minY; + } + return; // No pixels changed, nothing to do. + } +found_top: + + int maxX = -1; + int maxY = gpuFrameHeight-1; + + if (framebufferSizeCompatibleWithCoarseDiff) + { + int numPixels = gpuFrameWidth*gpuFrameHeight; + int firstDiff = coarse_backwards_linear_diff(framebuffer, prevFramebuffer, framebuffer + numPixels); + // Coarse diff computes a diff at 8 adjacent pixels at a time, and returns the point to the 8-pixel aligned coordinate where the pixels began to differ. + // Compute the precise diff position here. + while(firstDiff > 0 && framebuffer[firstDiff] == prevFramebuffer[firstDiff]) --firstDiff; + maxX = firstDiff % gpuFrameWidth; + maxY = firstDiff / gpuFrameWidth; + } + else + { + scanline = framebuffer + (gpuFrameHeight - 1)*stride; + prevScanline = prevFramebuffer + (gpuFrameHeight - 1)*stride; // (same scanline from previous frame, not preceding scanline) + + while(maxY >= minY) + { + int x = gpuFrameWidth-1; + // tail unaligned 0-3 pixels one by one + for(; x >= WidthAligned4; --x) + { + if (scanline[x] != prevScanline[x]) + { + maxX = x; + goto found_bottom; + } + } + // diff 4 pixels at a time + x = x & ~3u; + for(; x >= 0; x -= 4) + { + uint64_t diff = *(uint64_t*)(scanline+x) ^ *(uint64_t*)(prevScanline+x); + if (diff) + { + maxX = x + 3 - (__builtin_clzll(diff) >> 4); + goto found_bottom; + } + } + scanline -= stride; + prevScanline -= stride; + --maxY; + } + } +found_bottom: + + scanline = framebuffer + minY*stride; + prevScanline = prevFramebuffer + minY*stride; + int lastScanEndX = maxX; + if (minX > maxX) SWAPU32(minX, maxX); + int leftX = 0; + while(leftX < minX) + { + uint16_t *s = scanline + leftX; + uint16_t *prevS = prevScanline + leftX; + for(int y = minY; y <= maxY; ++y) + { + if (*s != *prevS) + goto found_left; + s += stride; + prevS += stride; + } + ++leftX; + } +found_left: + + int rightX = gpuFrameWidth-1; + while(rightX > maxX) + { + uint16_t *s = scanline + rightX; + uint16_t *prevS = prevScanline + rightX; + for(int y = minY; y <= maxY; ++y) + { + if (*s != *prevS) + goto found_right; + s += stride; + prevS += stride; + } + --rightX; + } +found_right: + + head = spans; + head->x = leftX; + head->endX = rightX+1; + head->lastScanEndX = lastScanEndX+1; + head->y = minY; + head->endY = maxY+1; + +#if defined(ALIGN_DIFF_TASKS_FOR_32B_CACHE_LINES) && defined(ALL_TASKS_SHOULD_DMA) + // Make sure the task is a multiple of 32 bytes wide so we can use a fast DMA copy + // algorithm later on. Currently this is only exploited in dma.cpp if ALL_TASKS_SHOULD_DMA + // option is enabled, so only enable it there. + head->x = MAX(0, ALIGN_DOWN(head->x, 16)); + head->endX = MIN(gpuFrameWidth, ALIGN_UP(head->endX, 16)); + head->lastScanEndX = ALIGN_UP(head->lastScanEndX, 16); +#endif + + head->size = (head->endX-head->x)*(head->endY-head->y-1) + (head->lastScanEndX - head->x); + head->next = 0; +} +#endif + +void DiffFramebuffersToScanlineSpansFastAndCoarse4Wide(uint16_t *framebuffer, uint16_t *prevFramebuffer, bool interlacedDiff, int interlacedFieldParity, Span *&head) +{ + int numSpans = 0; + int y = interlacedDiff ? interlacedFieldParity : 0; + int yInc = interlacedDiff ? 2 : 1; + // If doing an interlaced update, skip over every second scanline. + int scanlineInc = interlacedDiff ? (gpuFramebufferScanlineStrideBytes>>2) : (gpuFramebufferScanlineStrideBytes>>3); + uint64_t *scanline = (uint64_t *)(framebuffer + y*(gpuFramebufferScanlineStrideBytes>>1)); + uint64_t *prevScanline = (uint64_t *)(prevFramebuffer + y*(gpuFramebufferScanlineStrideBytes>>1)); // (same scanline from previous frame, not preceding scanline) + + const int W = gpuFrameWidth>>2; + + Span *span = spans; + while(y < gpuFrameHeight) + { + uint16_t *scanlineStart = (uint16_t *)scanline; + + for(int x = 0; x < W;) + { + if (scanline[x] != prevScanline[x]) + { + uint16_t *spanStart = (uint16_t *)(scanline + x) + (__builtin_ctzll(scanline[x] ^ prevScanline[x]) >> 4); + ++x; + + // We've found a start of a span of different pixels on this scanline, now find where this span ends + uint16_t *spanEnd; + for(;;) + { + if (x < W) + { + if (scanline[x] != prevScanline[x]) + { + ++x; + continue; + } + else + { + spanEnd = (uint16_t *)(scanline + x) + 1 - (__builtin_clzll(scanline[x-1] ^ prevScanline[x-1]) >> 4); + ++x; + break; + } + } + else + { + spanEnd = scanlineStart + gpuFrameWidth; + break; + } + } + + // Submit the span update task + span->x = spanStart - scanlineStart; + span->endX = span->lastScanEndX = spanEnd - scanlineStart; + span->y = y; + span->endY = y+1; + span->size = spanEnd - spanStart; + span->next = span+1; + ++span; + ++numSpans; + } + else + { + ++x; + } + } + y += yInc; + scanline += scanlineInc; + prevScanline += scanlineInc; + } + + if (numSpans > 0) + { + head = &spans[0]; + spans[numSpans-1].next = 0; + } + else + head = 0; +} + +void DiffFramebuffersToScanlineSpansExact(uint16_t *framebuffer, uint16_t *prevFramebuffer, bool interlacedDiff, int interlacedFieldParity, Span *&head) +{ + int numSpans = 0; + int y = interlacedDiff ? interlacedFieldParity : 0; + int yInc = interlacedDiff ? 2 : 1; + // If doing an interlaced update, skip over every second scanline. + int scanlineInc = interlacedDiff ? gpuFramebufferScanlineStrideBytes : (gpuFramebufferScanlineStrideBytes>>1); + int scanlineEndInc = scanlineInc - gpuFrameWidth; + uint16_t *scanline = framebuffer + y*(gpuFramebufferScanlineStrideBytes>>1); + uint16_t *prevScanline = prevFramebuffer + y*(gpuFramebufferScanlineStrideBytes>>1); // (same scanline from previous frame, not preceding scanline) + + while(y < gpuFrameHeight) + { + uint16_t *scanlineStart = scanline; + uint16_t *scanlineEnd = scanline + gpuFrameWidth; + while(scanline < scanlineEnd) + { + uint16_t *spanStart; + uint16_t *spanEnd; + int numConsecutiveUnchangedPixels = 0; + + if (scanline + 1 < scanlineEnd) + { + uint32_t diff = (*(uint32_t *)scanline) ^ (*(uint32_t *)prevScanline); + scanline += 2; + prevScanline += 2; + + if (diff == 0) // Both 1st and 2nd pixels are the same + continue; + + if (diff & 0xFFFF == 0) // 1st pixels are the same, 2nd pixels are not + { + spanStart = scanline - 1; + spanEnd = scanline; + } + else // 1st pixels are different + { + spanStart = scanline - 2; + if ((diff & 0xFFFF0000u) != 0) // 2nd pixels are different? + { + spanEnd = scanline; + } + else + { + spanEnd = scanline - 1; + numConsecutiveUnchangedPixels = 1; + } + } + + // We've found a start of a span of different pixels on this scanline, now find where this span ends + while(scanline < scanlineEnd) + { + if (*scanline++ != *prevScanline++) + { + spanEnd = scanline; + numConsecutiveUnchangedPixels = 0; + } + else + { + if (++numConsecutiveUnchangedPixels > SPAN_MERGE_THRESHOLD) + break; + } + } + } + else // handle the single last pixel on the row + { + if (*scanline++ == *prevScanline++) + break; + + spanStart = scanline - 1; + spanEnd = scanline; + } + + // Submit the span update task + Span *span = spans + numSpans; + span->x = spanStart - scanlineStart; + span->endX = span->lastScanEndX = spanEnd - scanlineStart; + span->y = y; + span->endY = y+1; + span->size = spanEnd - spanStart; + if (numSpans > 0) span[-1].next = span; + else head = span; + span->next = 0; + ++numSpans; + } + y += yInc; + scanline += scanlineEndInc; + prevScanline += scanlineEndInc; + } +} + +void MergeScanlineSpanList(Span *listHead) +{ + for(Span *i = listHead; i; i = i->next) + { + Span *prev = i; + for(Span *j = i->next; j; j = j->next) + { + // If the spans i and j are vertically apart, don't attempt to merge span i any further, since all spans >= j will also be farther vertically apart. + // (the list is nondecreasing with respect to Span::y) + if (j->y > i->endY) break; + + // Merge the spans i and j, and figure out the wastage of doing so + int x = MIN(i->x, j->x); + int y = MIN(i->y, j->y); + int endX = MAX(i->endX, j->endX); + int endY = MAX(i->endY, j->endY); + int lastScanEndX = (endY > i->endY) ? j->lastScanEndX : ((endY > j->endY) ? i->lastScanEndX : MAX(i->lastScanEndX, j->lastScanEndX)); + int newSize = (endX-x)*(endY-y-1) + (lastScanEndX - x); + int wastedPixels = newSize - i->size - j->size; + if (wastedPixels <= SPAN_MERGE_THRESHOLD +#ifdef MAX_SPI_TASK_SIZE + && newSize*SPI_BYTESPERPIXEL <= MAX_SPI_TASK_SIZE +#endif + ) + { + i->x = x; + i->y = y; + i->endX = endX; + i->endY = endY; + i->lastScanEndX = lastScanEndX; + i->size = newSize; + prev->next = j->next; + j = prev; + } + else // Not merging - travel to next node remembering where we came from + prev = j; + } + } +} diff --git a/usr/fbcp-ili9341/diff.h b/usr/fbcp-ili9341/diff.h new file mode 100644 index 0000000..a631994 --- /dev/null +++ b/usr/fbcp-ili9341/diff.h @@ -0,0 +1,44 @@ +#pragma once + +#include + +// Spans track dirty rectangular areas on screen +struct Span +{ + uint16_t x, endX, y, endY, lastScanEndX; + uint32_t size; // Specifies a box of width [x, endX[ * [y, endY[, where scanline endY-1 can be partial, and ends in lastScanEndX. + Span *next; // Maintain a linked skip list inside the array for fast seek to next active element when pruning +}; + +extern Span *spans; + +// Looking at SPI communication in a logic analyzer, it is observed that waiting for the finish of an SPI command FIFO causes pretty exactly one byte of delay to the command stream. +// Therefore the time/bandwidth cost of ending the current span and starting a new span is as follows: +// 1 byte to wait for the current SPI FIFO batch to finish, +// +1 byte to send the cursor X coordinate change command, +// +1 byte to wait for that FIFO to flush, +// +2 bytes to send the new X coordinate, +// +1 byte to wait for the FIFO to flush again, +// +1 byte to send the data_write command, +// +1 byte to wait for that FIFO to flush, +// after which the communication is ready to start pushing pixels. This totals to 8 bytes, or 4 pixels, meaning that if there are 4 unchanged pixels or less between two adjacent dirty +// spans, it is all the same to just update through those pixels as well to not have to wait to flush the FIFO. +#if defined(ALL_TASKS_SHOULD_DMA) +#define SPAN_MERGE_THRESHOLD 320 +#elif defined(DISPLAY_SPI_BUS_IS_16BITS_WIDE) +#define SPAN_MERGE_THRESHOLD 10 +#elif defined(HX8357D) +#define SPAN_MERGE_THRESHOLD 6 +#else +#define SPAN_MERGE_THRESHOLD 4 +#endif + +void DiffFramebuffersToSingleChangedRectangle(uint16_t *framebuffer, uint16_t *prevFramebuffer, Span *&head); + +void DiffFramebuffersToScanlineSpansExact(uint16_t *framebuffer, uint16_t *prevFramebuffer, bool interlacedDiff, int interlacedFieldParity, Span *&head); + +void DiffFramebuffersToScanlineSpansFastAndCoarse4Wide(uint16_t *framebuffer, uint16_t *prevFramebuffer, bool interlacedDiff, int interlacedFieldParity, Span *&head); + +void NoDiffChangedRectangle(Span *&head); + +void MergeScanlineSpanList(Span *listHead); diff --git a/usr/fbcp-ili9341/display.cpp b/usr/fbcp-ili9341/display.cpp new file mode 100644 index 0000000..1c67881 --- /dev/null +++ b/usr/fbcp-ili9341/display.cpp @@ -0,0 +1,39 @@ +#include "config.h" +#include "display.h" +#include "spi.h" + +#include + +void ClearScreen() +{ + for(int y = 0; y < DISPLAY_HEIGHT; ++y) + { +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, 0, 0, 0, (DISPLAY_WIDTH-1) >> 8, 0, (DISPLAY_WIDTH-1) & 0xFF); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, 0, (uint8_t)(y >> 8), 0, (uint8_t)(y & 0xFF), 0, (DISPLAY_HEIGHT-1) >> 8, 0, (DISPLAY_HEIGHT-1) & 0xFF); +#elif defined(DISPLAY_SET_CURSOR_IS_8_BIT) + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, DISPLAY_WIDTH-1); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, (uint8_t)y, DISPLAY_HEIGHT-1); +#else + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, (DISPLAY_WIDTH-1) >> 8, (DISPLAY_WIDTH-1) & 0xFF); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, (uint8_t)(y >> 8), (uint8_t)(y & 0xFF), (DISPLAY_HEIGHT-1) >> 8, (DISPLAY_HEIGHT-1) & 0xFF); +#endif + SPITask *clearLine = AllocTask(DISPLAY_WIDTH*SPI_BYTESPERPIXEL); + clearLine->cmd = DISPLAY_WRITE_PIXELS; + memset(clearLine->data, 0, clearLine->size); + CommitTask(clearLine); + RunSPITask(clearLine); + DoneTask(clearLine); + } +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, 0, 0, 0, (DISPLAY_WIDTH-1) >> 8, 0, (DISPLAY_WIDTH-1) & 0xFF); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, 0, 0, 0, 0, 0, (DISPLAY_HEIGHT-1) >> 8, 0, (DISPLAY_HEIGHT-1) & 0xFF); +#elif defined(DISPLAY_SET_CURSOR_IS_8_BIT) + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, DISPLAY_WIDTH-1); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, 0, DISPLAY_HEIGHT-1); +#else + SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, (DISPLAY_WIDTH-1) >> 8, (DISPLAY_WIDTH-1) & 0xFF); + SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, 0, 0, (DISPLAY_HEIGHT-1) >> 8, (DISPLAY_HEIGHT-1) & 0xFF); +#endif +} + diff --git a/usr/fbcp-ili9341/display.h b/usr/fbcp-ili9341/display.h new file mode 100644 index 0000000..ff0bd72 --- /dev/null +++ b/usr/fbcp-ili9341/display.h @@ -0,0 +1,121 @@ +#pragma once + +#include "config.h" + +// Configure the desired display update rate. Use 120 for max performance/minimized latency, and 60/50/30/24 etc. for regular content, or to save battery. +#define TARGET_FRAME_RATE 60 + +#if defined(ILI9341) || defined(ILI9340) +#include "ili9341.h" +#elif defined(ILI9486L) +#include "ili9486l.h" +#elif defined(ILI9488) +#include "ili9488.h" +#elif defined(ILI9486) +#include "ili9486.h" +#elif defined(HX8357D) +#include "hx8357d.h" +#elif defined(ST7735R) || defined(ST7735S) || defined(ST7789) || defined(ST7789VW) +#include "st7735r.h" +#elif defined(SSD1351) +#include "ssd1351.h" +#elif defined(MZ61581) +#include "mz61581.h" +#elif defined(MPI3501) +#include "mpi3501.h" +#else +#error Please reconfigure CMake with your display controller directive set! +#endif + +// The native display resolution is in portrait/landscape, but we want to display in the opposite landscape/portrait orientation? +// Compare DISPLAY_NATIVE_WIDTH <= DISPLAY_NATIVE_HEIGHT in the first test to let users toggle DISPLAY_OUTPUT_LANDSCAPE directive in config.h to flip orientation on square displays with width=height +#if ((DISPLAY_NATIVE_WIDTH <= DISPLAY_NATIVE_HEIGHT && defined(DISPLAY_OUTPUT_LANDSCAPE)) || (DISPLAY_NATIVE_WIDTH > DISPLAY_NATIVE_HEIGHT && !defined(DISPLAY_OUTPUT_LANDSCAPE))) +#define DISPLAY_SHOULD_FLIP_ORIENTATION +#endif + +#if defined(DISPLAY_SHOULD_FLIP_ORIENTATION) && !defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) +// Need to do orientation flip, but don't want to do it on the CPU, so pretend the display dimensions are of the flipped form, +// and use display controller initialization sequence to do the flipping +#define DISPLAY_WIDTH DISPLAY_NATIVE_HEIGHT +#define DISPLAY_HEIGHT DISPLAY_NATIVE_WIDTH +#define DISPLAY_FLIP_ORIENTATION_IN_HARDWARE +#else +#define DISPLAY_WIDTH DISPLAY_NATIVE_WIDTH +#define DISPLAY_HEIGHT DISPLAY_NATIVE_HEIGHT +#endif + +#if !defined(DISPLAY_SHOULD_FLIP_ORIENTATION) && defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) +#undef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE +#endif + +#ifndef DISPLAY_NATIVE_COVERED_LEFT_SIDE +#define DISPLAY_NATIVE_COVERED_LEFT_SIDE 0 +#endif + +#ifndef DISPLAY_NATIVE_COVERED_TOP_SIDE +#define DISPLAY_NATIVE_COVERED_TOP_SIDE 0 +#endif + +#ifndef DISPLAY_NATIVE_COVERED_BOTTOM_SIDE +#define DISPLAY_NATIVE_COVERED_BOTTOM_SIDE 0 +#endif + +#ifndef DISPLAY_NATIVE_COVERED_RIGHT_SIDE +#define DISPLAY_NATIVE_COVERED_RIGHT_SIDE 0 +#endif + +#if defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) || !defined(DISPLAY_SHOULD_FLIP_ORIENTATION) +#define DISPLAY_COVERED_TOP_SIDE DISPLAY_NATIVE_COVERED_TOP_SIDE +#define DISPLAY_COVERED_LEFT_SIDE DISPLAY_NATIVE_COVERED_LEFT_SIDE +#define DISPLAY_COVERED_RIGHT_SIDE DISPLAY_NATIVE_COVERED_RIGHT_SIDE +#define DISPLAY_COVERED_BOTTOM_SIDE DISPLAY_NATIVE_COVERED_BOTTOM_SIDE +#else +#define DISPLAY_COVERED_TOP_SIDE DISPLAY_NATIVE_COVERED_LEFT_SIDE +#define DISPLAY_COVERED_LEFT_SIDE DISPLAY_NATIVE_COVERED_TOP_SIDE +#define DISPLAY_COVERED_RIGHT_SIDE DISPLAY_NATIVE_COVERED_BOTTOM_SIDE +#define DISPLAY_COVERED_BOTTOM_SIDE DISPLAY_NATIVE_COVERED_RIGHT_SIDE +#endif + +#define DISPLAY_DRAWABLE_WIDTH (DISPLAY_WIDTH-DISPLAY_COVERED_LEFT_SIDE-DISPLAY_COVERED_RIGHT_SIDE) +#define DISPLAY_DRAWABLE_HEIGHT (DISPLAY_HEIGHT-DISPLAY_COVERED_TOP_SIDE-DISPLAY_COVERED_BOTTOM_SIDE) + +#ifndef DISPLAY_SPI_DRIVE_SETTINGS +#define DISPLAY_SPI_DRIVE_SETTINGS (0) +#endif + +#ifdef DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2 +// 18 bits per pixel padded to 3 bytes +#define SPI_BYTESPERPIXEL 3 +#else +// 16 bits per pixel +#define SPI_BYTESPERPIXEL 2 +#endif + +#if (DISPLAY_DRAWABLE_WIDTH % 16 == 0) && defined(ALL_TASKS_SHOULD_DMA) &&!defined(USE_SPI_THREAD) && defined(USE_GPU_VSYNC) && !defined(DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2) && !defined(SPI_3WIRE_PROTOCOL) +// If conditions are suitable, defer moving pixels until the very last moment in dma.cpp when we are about +// to kick off DMA tasks. +// TODO: 3-wire SPI displays are not yet compatible with this path. Implement support for this to optimize performance of 3-wire SPI displays on Pi Zero. (Pi 3B does not care that much) +#define OFFLOAD_PIXEL_COPY_TO_DMA_CPP +#endif + +void ClearScreen(void); + +void TurnBacklightOn(void); +void TurnBacklightOff(void); +void TurnDisplayOn(void); +void TurnDisplayOff(void); + +void DeinitSPIDisplay(void); + +#if !defined(SPI_BUS_CLOCK_DIVISOR) +#error Please define -DSPI_BUS_CLOCK_DIVISOR= on the CMake command line! This parameter along with core_freq=xxx in /boot/config.txt defines the SPI display speed. (spi speed = core_freq / SPI_BUS_CLOCK_DIVISOR) +#endif + +#if !defined(GPIO_TFT_DATA_CONTROL) && !defined(SPI_3WIRE_PROTOCOL) +#error Please reconfigure CMake with -DGPIO_TFT_DATA_CONTROL= specifying which pin your display is using for the Data/Control line! +#endif + +#if defined(SPI_3WIRE_PROTOCOL) && !defined(SPI_3WIRE_DATA_COMMAND_FRAMING_BITS) +// 3-wire SPI displays use 1 bit of D/C framing (unless otherwise specified. E.g. KeDei uses 16 bit instead) +#define SPI_3WIRE_DATA_COMMAND_FRAMING_BITS 1 +#endif diff --git a/usr/fbcp-ili9341/dma.cpp b/usr/fbcp-ili9341/dma.cpp new file mode 100644 index 0000000..d2844e2 --- /dev/null +++ b/usr/fbcp-ili9341/dma.cpp @@ -0,0 +1,760 @@ +#ifndef KERNEL_MODULE +#include // fprintf, stderr +#include // exit +#include // memset, memcpy +#include // uint32_t +#include // syslog +#include // mmap, munmap, PROT_READ, PROT_WRITE +#endif + +#include "config.h" +#include "dma.h" +#include "spi.h" +#include "gpu.h" +#include "util.h" +#include "mailbox.h" + +#ifdef USE_DMA_TRANSFERS + +#define BCM2835_PERI_BASE 0x3F000000 + +SharedMemory *dmaSourceMemory = 0; +volatile DMAChannelRegisterFile *dma0 = 0; + +volatile DMAChannelRegisterFile *dmaTx = 0; +volatile DMAChannelRegisterFile *dmaRx = 0; +int dmaTxChannel = -1; +int dmaTxIrq = 0; +int dmaRxChannel = -1; +int dmaRxIrq = 0; + +#define PAGE_SIZE 4096 + +struct GpuMemory +{ + uint32_t allocationHandle; + void *virtualAddr; + uintptr_t busAddress; + uint32_t sizeBytes; +}; + +#define NUM_DMA_CBS 1024 +GpuMemory dmaCb, dmaSourceBuffer, dmaConstantData; + +volatile DMAControlBlock *dmaSendTail = 0; +volatile DMAControlBlock *dmaRecvTail = 0; +volatile DMAControlBlock *firstFreeCB = 0; +volatile uint8_t *dmaSourceEnd = 0; + +volatile DMAControlBlock *GrabFreeCBs(int num) +{ + volatile DMAControlBlock *firstCB = (volatile DMAControlBlock *)dmaCb.virtualAddr; + volatile DMAControlBlock *endCB = firstCB + NUM_DMA_CBS; + if ((uintptr_t)(firstFreeCB + num) >= (uintptr_t)dmaCb.virtualAddr + dmaCb.sizeBytes) + { + WaitForDMAFinished(); + firstFreeCB = firstCB; + } + + volatile DMAControlBlock *ret = firstFreeCB; + firstFreeCB += num; + return ret; +} + +volatile uint8_t *GrabFreeDMASourceBytes(int bytes) +{ + if ((uintptr_t)dmaSourceEnd + bytes >= (uintptr_t)dmaSourceBuffer.virtualAddr + dmaSourceBuffer.sizeBytes) + { + WaitForDMAFinished(); + dmaSourceEnd = (volatile uint8_t *)dmaSourceBuffer.virtualAddr; + } + + volatile uint8_t *ret = dmaSourceEnd; + dmaSourceEnd += bytes; + return ret; +} + +static int AllocateDMAChannel(int *dmaChannel, int *irq) +{ + // Snooping DMA, channels 3, 5 and 6 seen active. + // TODO: Actually reserve the DMA channel to the system using bcm_dma_chan_alloc() and bcm_dma_chan_free()?... + // Right now, use channels 1 and 4 which seem to be free. + // Note: The send channel could be a lite channel, but receive channel cannot, since receiving uses the IGNORE flag + // that lite DMA engines don't have. +#ifdef FREEPLAYTECH_WAVESHARE32B + // On FreePlayTech Zero, DMA channel 4 seen to be taken by SD HOST (peripheral mapping 13). + int freeChannels[] = { 5, 1 }; +#else + int freeChannels[] = { 7, 1 }; +#endif +#if defined(DMA_TX_CHANNEL) + freeChannels[0] = DMA_TX_CHANNEL; +#endif +#if defined(DMA_RX_CHANNEL) + freeChannels[1] = DMA_RX_CHANNEL; +#endif + if (freeChannels[0] == freeChannels[1]) FATAL_ERROR("DMA TX and RX channels cannot be the same channel!"); + + static int nextFreeChannel = 0; + if (nextFreeChannel >= sizeof(freeChannels) / sizeof(freeChannels[0])) FATAL_ERROR("No free DMA channels"); + + *dmaChannel = freeChannels[nextFreeChannel++]; + LOG("Allocated DMA channel %d", *dmaChannel); + *irq = 0; + return 0; +} + +void FreeDMAChannel(int channel) +{ + volatile DMAChannelRegisterFile *dma = GetDMAChannel(channel); + dma->cb.ti = 0; // Clear the SPI TX & RX permaps for this DMA channel so that we don't think some other program is using these for SPI +} + +// Message IDs for different mailbox GPU memory allocation messages +#define MEM_ALLOC_MESSAGE 0x3000c // This message is 3 u32s: numBytes, alignment and flags +#define MEM_FREE_MESSAGE 0x3000f // This message is 1 u32: handle +#define MEM_LOCK_MESSAGE 0x3000d // 1 u32: handle +#define MEM_UNLOCK_MESSAGE 0x3000e // 1 u32: handle + +// Memory allocation flags +#define MEM_ALLOC_FLAG_DIRECT (1 << 2) // Allocate uncached memory that bypasses L1 and L2 cache on loads and stores +#define MEM_ALLOC_FLAG_COHERENT (1 << 3) // Non-allocating in L2 but coherent + +#define BUS_TO_PHYS(x) ((x) & ~0xC0000000) + +#define PHYS_TO_BUS(x) ((x) | 0xC0000000) + +#define VIRT_TO_BUS(block, x) ((uintptr_t)(x) - (uintptr_t)((block).virtualAddr) + (block).busAddress) + +uint64_t totalGpuMemoryUsed = 0; + +// Allocates the given number of bytes in GPU side memory, and returns the virtual address and physical bus address of the allocated memory block. +// The virtual address holds an uncached view to the allocated memory, so writes and reads to that memory address bypass the L1 and L2 caches. Use +// this kind of memory to pass data blocks over to the DMA controller to process. +GpuMemory AllocateUncachedGpuMemory(uint32_t numBytes, const char *reason) +{ + GpuMemory mem; + mem.sizeBytes = ALIGN_UP(numBytes, PAGE_SIZE); + uint32_t allocationFlags = MEM_ALLOC_FLAG_DIRECT | MEM_ALLOC_FLAG_COHERENT; + mem.allocationHandle = Mailbox(MEM_ALLOC_MESSAGE, /*size=*/mem.sizeBytes, /*alignment=*/PAGE_SIZE, /*flags=*/allocationFlags); + if (!mem.allocationHandle) FATAL_ERROR("Failed to allocate GPU memory! Try increasing gpu_mem allocation in /boot/config.txt. See https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md"); + mem.busAddress = Mailbox(MEM_LOCK_MESSAGE, mem.allocationHandle); + if (!mem.busAddress) FATAL_ERROR("Failed to lock GPU memory!"); + mem.virtualAddr = mmap(0, mem.sizeBytes, PROT_READ | PROT_WRITE, MAP_SHARED, mem_fd, BUS_TO_PHYS(mem.busAddress)); + if (mem.virtualAddr == MAP_FAILED) FATAL_ERROR("Failed to mmap GPU memory!"); + totalGpuMemoryUsed += mem.sizeBytes; +// printf("Allocated %u bytes of GPU memory for %s (bus address=%p). Total GPU memory used: %llu bytes\n", mem.sizeBytes, reason, (void*)mem.busAddress, totalGpuMemoryUsed); + return mem; +} + +void FreeUncachedGpuMemory(GpuMemory mem) +{ + totalGpuMemoryUsed -= mem.sizeBytes; + munmap(mem.virtualAddr, mem.sizeBytes); + Mailbox(MEM_UNLOCK_MESSAGE, mem.allocationHandle); + Mailbox(MEM_FREE_MESSAGE, mem.allocationHandle); +} + +volatile DMAChannelRegisterFile *GetDMAChannel(int channelNumber) +{ + if (channelNumber < 0 || channelNumber >= BCM2835_NUM_DMA_CHANNELS) + { + printf("Invalid DMA channel %d specified!\n", channelNumber); + FATAL_ERROR("Invalid DMA channel specified!"); + } + return dma0 + channelNumber; +} + +void DumpDMAPeripheralMap() +{ + for(int i = 0; i < BCM2835_NUM_DMA_CHANNELS; ++i) + { + volatile DMAChannelRegisterFile *channel = GetDMAChannel(i); + printf("DMA channel %d has peripheral map %d (is lite channel: %d, currently active: %d, current control block: %p)\n", i, (channel->cb.ti & BCM2835_DMA_TI_PERMAP_MASK) >> BCM2835_DMA_TI_PERMAP_SHIFT, (channel->cb.debug & BCM2835_DMA_DEBUG_LITE) ? 1 : 0, (channel->cs & BCM2835_DMA_CS_ACTIVE) ? 1 : 0, channel->cbAddr); + } +} + +// Verifies that no other program has stomped on the DMA channel that we are using. +void CheckDMAChannelNotStolen(int channelNumber, int expectedPeripheralMap) +{ + volatile DMAChannelRegisterFile *channel = GetDMAChannel(channelNumber); + uint32_t peripheralMap = ((channel->cb.ti & BCM2835_DMA_TI_PERMAP_MASK) >> BCM2835_DMA_TI_PERMAP_SHIFT); + if (peripheralMap != expectedPeripheralMap && peripheralMap != 0) + { + DumpDMAPeripheralMap(); + printf("DMA channel collision! DMA channel %d was expected to be assigned to our peripheral %d, but something else has assigned it to peripheral %d!\n", channelNumber, expectedPeripheralMap, peripheralMap); + FATAL_ERROR("System is likely unstable now, rebooting is advised."); + } + uint32_t cbAddr = channel->cbAddr; + if (cbAddr && (cbAddr < dmaCb.busAddress || cbAddr >= dmaCb.busAddress + dmaCb.sizeBytes)) + { + DumpDMAPeripheralMap(); + printf("DMA channel collision! Some other program has submitted a DMA task to our DMA channel %d! (DMA task at unknown control block address %p)\n", channelNumber, cbAddr); + FATAL_ERROR("System is likely unstable now, rebooting is advised."); + } +} + +void CheckSPIDMAChannelsNotStolen() +{ + CheckDMAChannelNotStolen(dmaTxChannel, BCM2835_DMA_TI_PERMAP_SPI_TX); + CheckDMAChannelNotStolen(dmaRxChannel, BCM2835_DMA_TI_PERMAP_SPI_RX); +} + +void ResetDMAChannels() +{ + dmaTx->cs = BCM2835_DMA_CS_RESET; + dmaTx->cb.debug = BCM2835_DMA_DEBUG_DMA_READ_ERROR | BCM2835_DMA_DEBUG_DMA_FIFO_ERROR | BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR; + dmaRx->cs = BCM2835_DMA_CS_RESET; + dmaRx->cb.debug = BCM2835_DMA_DEBUG_DMA_READ_ERROR | BCM2835_DMA_DEBUG_DMA_FIFO_ERROR | BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR; +} + +int InitDMA() +{ +#if defined(KERNEL_MODULE) + dma0 = (volatile DMAChannelRegisterFile*)ioremap(BCM2835_PERI_BASE+BCM2835_DMA0_OFFSET, BCM2835_NUM_DMA_CHANNELS*0x100); +#else + dma0 = (volatile DMAChannelRegisterFile*)((uintptr_t)bcm2835 + BCM2835_DMA0_OFFSET); +#endif + +#ifdef KERNEL_MODULE_CLIENT + dmaTxChannel = spiTaskMemory->dmaTxChannel; + dmaRxChannel = spiTaskMemory->dmaRxChannel; +#else + int ret = AllocateDMAChannel(&dmaTxChannel, &dmaTxIrq); + if (ret != 0) FATAL_ERROR("Unable to allocate TX DMA channel!"); + ret = AllocateDMAChannel(&dmaRxChannel, &dmaRxIrq); + if (ret != 0) FATAL_ERROR("Unable to allocate RX DMA channel!"); + + printf("Enabling DMA channels Tx:%d and Rx:%d\n", dmaTxChannel, dmaRxChannel); + volatile uint32_t *dmaEnableRegister = (volatile uint32_t *)((uintptr_t)dma0 + BCM2835_DMAENABLE_REGISTER_OFFSET); + + // Enable the allocated DMA channels + *dmaEnableRegister |= (1 << dmaTxChannel); + *dmaEnableRegister |= (1 << dmaRxChannel); +#endif + +#if !defined(KERNEL_MODULE) + dmaCb = AllocateUncachedGpuMemory(sizeof(DMAControlBlock) * NUM_DMA_CBS, "DMA control blocks"); + memset(dmaCb.virtualAddr, 0, dmaCb.sizeBytes); // Some fields of the CBs (debug, reserved) are initialized to zero and assumed to stay so throughout app lifetime. + firstFreeCB = (volatile DMAControlBlock *)dmaCb.virtualAddr; + + dmaSourceBuffer = AllocateUncachedGpuMemory(SHARED_MEMORY_SIZE*2, "DMA source data"); + dmaSourceEnd = (volatile uint8_t *)dmaSourceBuffer.virtualAddr; + + dmaConstantData = AllocateUncachedGpuMemory(2*sizeof(uint32_t), "DMA constant data"); + uint32_t *constantData = (uint32_t *)dmaConstantData.virtualAddr; + constantData[0] = BCM2835_SPI0_CS_DMAEN; // constantData[0] is for disableTransferActive task + constantData[1] = BCM2835_DMA_CS_ACTIVE | BCM2835_DMA_CS_END; // constantData[1] is for startDMATxChannel task +#endif + + LOG("DMA hardware register file is at ptr: %p, using DMA TX channel: %d and DMA RX channel: %d", dma0, dmaTxChannel, dmaRxChannel); + if (!dma0) FATAL_ERROR("Failed to map DMA!"); + + dmaTx = GetDMAChannel(dmaTxChannel); + dmaRx = GetDMAChannel(dmaRxChannel); + LOG("DMA hardware TX channel register file is at ptr: %p, DMA RX channel register file is at ptr: %p", dmaTx, dmaRx); + int dmaTxPeripheralMap = (dmaTx->cb.ti & BCM2835_DMA_TI_PERMAP_MASK) >> BCM2835_DMA_TI_PERMAP_SHIFT; + if (dmaTxPeripheralMap != 0 && dmaTxPeripheralMap != BCM2835_DMA_TI_PERMAP_SPI_TX) + { + DumpDMAPeripheralMap(); + LOG("DMA TX channel %d was assigned another peripheral map %d!", dmaTxChannel, dmaTxPeripheralMap); + FATAL_ERROR("DMA TX channel was assigned another peripheral map!"); + } + if (dmaTx->cbAddr != 0 && (dmaTx->cs & BCM2835_DMA_CS_ACTIVE)) + FATAL_ERROR("DMA TX channel was in use!"); + + int dmaRxPeripheralMap = (dmaRx->cb.ti & BCM2835_DMA_TI_PERMAP_MASK) >> BCM2835_DMA_TI_PERMAP_SHIFT; + if (dmaRxPeripheralMap != 0 && dmaRxPeripheralMap != BCM2835_DMA_TI_PERMAP_SPI_RX) + { + LOG("DMA RX channel %d was assigned another peripheral map %d!", dmaRxChannel, dmaRxPeripheralMap); + DumpDMAPeripheralMap(); + FATAL_ERROR("DMA RX channel was assigned another peripheral map!"); + } + if (dmaRx->cbAddr != 0 && (dmaRx->cs & BCM2835_DMA_CS_ACTIVE)) + FATAL_ERROR("DMA RX channel was in use!"); + + if ((dmaRx->cb.debug & BCM2835_DMA_DEBUG_LITE) != 0) + FATAL_ERROR("DMA RX channel cannot be a lite channel, because to get best performance we want to use BCM2835_DMA_TI_DEST_IGNORE DMA operation mode that lite DMA channels do not have. (Try using DMA RX channel value < 7)"); + + LOG("Resetting DMA channels for use"); + ResetDMAChannels(); + + // TODO: Set up IRQ + LOG("DMA all set up"); + return 0; +} + +// Debugging functions to introspect SPI and DMA hardware registers: + +void DumpCS(uint32_t reg) +{ + PRINT_FLAG(BCM2835_DMA_CS_RESET); + PRINT_FLAG(BCM2835_DMA_CS_ABORT); + PRINT_FLAG(BCM2835_DMA_CS_DISDEBUG); + PRINT_FLAG(BCM2835_DMA_CS_WAIT_FOR_OUTSTANDING_WRITES); + PRINT_FLAG(BCM2835_DMA_CS_PANIC_PRIORITY); + PRINT_FLAG(BCM2835_DMA_CS_PRIORITY); + PRINT_FLAG(BCM2835_DMA_CS_ERROR); + PRINT_FLAG(BCM2835_DMA_CS_WAITING_FOR_OUTSTANDING_WRITES); + PRINT_FLAG(BCM2835_DMA_CS_DREQ_STOPS_DMA); + PRINT_FLAG(BCM2835_DMA_CS_PAUSED); + PRINT_FLAG(BCM2835_DMA_CS_DREQ); + PRINT_FLAG(BCM2835_DMA_CS_INT); + PRINT_FLAG(BCM2835_DMA_CS_END); + PRINT_FLAG(BCM2835_DMA_CS_ACTIVE); +} + +void DumpDebug(uint32_t reg) +{ + PRINT_FLAG(BCM2835_DMA_DEBUG_LITE); + PRINT_FLAG(BCM2835_DMA_DEBUG_VERSION); + PRINT_FLAG(BCM2835_DMA_DEBUG_DMA_STATE); + PRINT_FLAG(BCM2835_DMA_DEBUG_DMA_ID); + PRINT_FLAG(BCM2835_DMA_DEBUG_DMA_OUTSTANDING_WRITES); + PRINT_FLAG(BCM2835_DMA_DEBUG_DMA_READ_ERROR); + PRINT_FLAG(BCM2835_DMA_DEBUG_DMA_FIFO_ERROR); + PRINT_FLAG(BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR); +} + +void DumpTI(uint32_t reg) +{ + PRINT_FLAG(BCM2835_DMA_TI_NO_WIDE_BURSTS); + PRINT_FLAG(BCM2835_DMA_TI_WAITS); +#define BCM2835_DMA_TI_PERMAP_MASK_SHIFT 16 + PRINT_FLAG(BCM2835_DMA_TI_PERMAP_MASK); +// PRINT_FLAG(BCM2835_DMA_TI_BURST_LENGTH); + PRINT_FLAG(BCM2835_DMA_TI_SRC_IGNORE); + PRINT_FLAG(BCM2835_DMA_TI_SRC_DREQ); + PRINT_FLAG(BCM2835_DMA_TI_SRC_WIDTH); + PRINT_FLAG(BCM2835_DMA_TI_SRC_INC); + PRINT_FLAG(BCM2835_DMA_TI_DEST_IGNORE); + PRINT_FLAG(BCM2835_DMA_TI_DEST_DREQ); + PRINT_FLAG(BCM2835_DMA_TI_DEST_WIDTH); + PRINT_FLAG(BCM2835_DMA_TI_DEST_INC); + PRINT_FLAG(BCM2835_DMA_TI_WAIT_RESP); + PRINT_FLAG(BCM2835_DMA_TI_TDMODE); + PRINT_FLAG(BCM2835_DMA_TI_INTEN); +} + +#define DMA_DMA0_CB_PHYS_ADDRESS 0x7E007000 + +#define DMA_SPI_CS_PHYS_ADDRESS 0x7E204000 +#define DMA_SPI_FIFO_PHYS_ADDRESS 0x7E204004 +#define DMA_SPI_DLEN_PHYS_ADDRESS 0x7E20400C +#define DMA_GPIO_SET_PHYS_ADDRESS 0x7E20001C +#define DMA_GPIO_CLEAR_PHYS_ADDRESS 0x7E200028 + +void DumpDMAState() +{ + printf("---SPI:---\n"); + DumpSPICS(spi->cs); + printf("---DMATX CS:---\n"); + DumpCS(dmaTx->cs); + printf("---DMATX TI:---\n"); + DumpTI(dmaTx->cb.ti); + printf("---DMATX DEBUG:---\n"); + DumpDebug(dmaTx->cb.debug); + printf("****** DMATX cbAddr: %p\n", dmaTx->cbAddr); + + printf("---DMARX CS:---\n"); + DumpCS(dmaRx->cs); + printf("---DMARX TI:---\n"); + DumpTI(dmaRx->cb.ti); + printf("---DMARX DEBUG:---\n"); + DumpDebug(dmaRx->cb.debug); + printf("****** DMARX cbAddr: %p\n", dmaRx->cbAddr); +} + +extern volatile bool programRunning; + +void WaitForDMAFinished() +{ + int spins = 0; + uint64_t t0 = tick(); + while((dmaTx->cs & BCM2835_DMA_CS_ACTIVE) && programRunning) + { + usleep(100); + if (tick() - t0 > 2000000) + { + printf("TX stalled\n"); + DumpDMAState(); + exit(1); + } + } + spins = 0; + t0 = tick(); + while((dmaRx->cs & BCM2835_DMA_CS_ACTIVE) && programRunning) + { + usleep(100); + if (tick() - t0 > 2000000) + { + printf("RX stalled\n"); + DumpDMAState(); + exit(1); + } + } + dmaSendTail = 0; + dmaRecvTail = 0; +} + +#ifdef ALL_TASKS_SHOULD_DMA + +// This function does a memcpy from one source buffer to two destination buffers simultaneously. +// It saves a lot of time on ARMv6 by avoiding to have to do two separate memory copies, because the ARMv6 L1 cache is so tiny (4K) that it cannot fit a whole framebuffer +// in memory at a time. Streaming through it only once instead of twice helps memory bandwidth immensely, this is profiled to be ~4x faster than a pair of memcpys or a simple CPU loop. +// In addition, this does a little endian->big endian conversion when copying data out to dstDma. +static void memcpy_to_dma_and_prev_framebuffer(uint16_t *dstDma, uint16_t **dstPrevFramebuffer, uint16_t **srcFramebuffer, int numBytes, int *taskStartX, int width, int stride) +{ + int strideEnd = stride - width*2; + int xLeft = width-*taskStartX; + + uint16_t *Src = *srcFramebuffer; + uint16_t *Dst1 = *dstPrevFramebuffer; + + // TODO: Do the loops in aligned order with unaligned head and tail separate, and ensure that dstDma, dstPrevFramebuffer and srcFramebuffer are in same alignment phase. + asm volatile( + "start_%=:\n" + "ldrd r0, r1, [%[srcFramebuffer]], #8\n" + "pld [%[srcFramebuffer], #248]\n" + "strd r0, r1, [%[dstPrevFramebuffer]], #8\n" + "rev16 r0, r0\n" + "rev16 r1, r1\n" + "strd r0, r1, [%[dstDma]], #8\n" + + "ldrd r0, r1, [%[srcFramebuffer]], #8\n" + "strd r0, r1, [%[dstPrevFramebuffer]], #8\n" + "rev16 r0, r0\n" + "rev16 r1, r1\n" + "strd r0, r1, [%[dstDma]], #8\n" + + "ldrd r0, r1, [%[srcFramebuffer]], #8\n" + "strd r0, r1, [%[dstPrevFramebuffer]], #8\n" + "rev16 r0, r0\n" + "rev16 r1, r1\n" + "strd r0, r1, [%[dstDma]], #8\n" + + "ldrd r0, r1, [%[srcFramebuffer]], #8\n" + "strd r0, r1, [%[dstPrevFramebuffer]], #8\n" + "rev16 r0, r0\n" + "rev16 r1, r1\n" + "strd r0, r1, [%[dstDma]], #8\n" + + "subs %[xLeft], %[xLeft], #16\n" + "addls %[xLeft], %[xLeft], %[width]\n" + "addls %[dstPrevFramebuffer], %[dstPrevFramebuffer], %[strideEnd]\n" + "addls %[srcFramebuffer], %[srcFramebuffer], %[strideEnd]\n" + + "subs %[numBytes], %[numBytes], #32\n" + "bhi start_%=\n" + + : [dstDma]"+r"(dstDma), [dstPrevFramebuffer]"+r"(Dst1), [srcFramebuffer]"+r"(Src), [xLeft]"+r"(xLeft), [numBytes]"+r"(numBytes) + : [strideEnd]"r"(strideEnd), [width]"r"(width) + : "r0", "r1", "memory", "cc" + ); + *taskStartX = width - xLeft; + *srcFramebuffer = Src; + *dstPrevFramebuffer = Dst1; +} + +static void memcpy_to_dma_and_prev_framebuffer_in_c(uint16_t *dstDma, uint16_t **dstPrevFramebuffer, uint16_t **srcFramebuffer, int numBytes, int *taskStartX, int width, int stride) +{ + static bool performanceWarningPrinted = false; + if (!performanceWarningPrinted) + { + printf("Performance warning: using slow memcpy_to_dma_and_prev_framebuffer_in_c() function. Check conditions in display.h that enable OFFLOAD_PIXEL_COPY_TO_DMA_CPP and configure to use that instead.\n"); + performanceWarningPrinted = true; + } + int numPixels = numBytes>>1; + int endStridePixels = (stride>>1) - width; + uint16_t *prevData = *dstPrevFramebuffer; + uint16_t *data = *srcFramebuffer; + for(int i = 0; i < numPixels; ++i) + { + *prevData++ = *data; + dstDma[i] = __builtin_bswap16(*data++); + if (++*taskStartX >= width) + { + *taskStartX = 0; + data += endStridePixels; + prevData += endStridePixels; + } + } + *srcFramebuffer = data; + *dstPrevFramebuffer = prevData; +} + +#if defined(ALL_TASKS_SHOULD_DMA) && defined(SPI_3WIRE_PROTOCOL) +// Bug: there is something about the chained DMA transfer mechanism that makes write window coordinate set commands not go through properly +// on 3-wire displays, but do not yet know what. (Remove this #error statement to debug) +#error ALL_TASKS_SHOULD_DMA and SPI_3WIRE_PROTOCOL are currently not mutually compatible! +#endif + +#if defined(OFFLOAD_PIXEL_COPY_TO_DMA_CPP) && defined(SPI_3WIRE_PROTOCOL) +// We would have to convert 8-bit tasks to 9-bit tasks immediately after offloaded memcpy has been done below to implement this. +#error OFFLOAD_PIXEL_COPY_TO_DMA_CPP and SPI_3WIRE_PROTOCOL are not mutually compatible! +#endif + +void SPIDMATransfer(SPITask *task) +{ +// There is a limit to how many bytes can be sent in one DMA-based SPI task, so if the task +// is larger than this, we'll split the send into multiple individual DMA SPI transfers +// and chain them together. This should be a multiple of 32 bytes to keep tasks cache aligned on ARMv6. +#define MAX_DMA_SPI_TASK_SIZE 65504 + + const int numDMASendTasks = (task->PayloadSize() + MAX_DMA_SPI_TASK_SIZE - 1) / MAX_DMA_SPI_TASK_SIZE; + + volatile uint32_t *dmaData = (volatile uint32_t *)GrabFreeDMASourceBytes(4*(numDMASendTasks-1)+4*numDMASendTasks+task->PayloadSize()); + volatile uint32_t *setDMATxAddressData = dmaData; + volatile uint32_t *txData = dmaData+numDMASendTasks-1; + + volatile DMAControlBlock *cb = GrabFreeCBs(numDMASendTasks*5-3); + + volatile DMAControlBlock *rxTail = 0; + volatile DMAControlBlock *tx0 = &cb[0]; + volatile DMAControlBlock *rx0 = &cb[1]; + +#ifdef OFFLOAD_PIXEL_COPY_TO_DMA_CPP + uint8_t *data = task->fb; + uint8_t *prevData = task->prevFb; + const bool taskAndFramebufferSizesCompatibleWithTightMemcpy = (task->PayloadSize() % 32 == 0) && (task->width % 16 == 0); +#else + uint8_t *data = task->PayloadStart(); +#endif + + int bytesLeft = task->PayloadSize(); + int taskStartX = 0; + + while(bytesLeft > 0) + { + int sendSize = MIN(bytesLeft, MAX_DMA_SPI_TASK_SIZE); + bytesLeft -= sendSize; + + volatile DMAControlBlock *tx = cb++; + txData[0] = BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS | (sendSize << 16); // The first four bytes written to the SPI data register control the DLEN and CS,CPOL,CPHA settings. + // This is really sad: we must do a memcpy to prepare for DMA controller to be able to do a memcpy. The reason for this is that the DMA source memory area must be in cache bypassing + // region of memory, which the SPI source ring buffer is not. It could be allocated to be so however, but bypassing the caches on the SPI ring buffer would cause a massive -51.5% + // profiled overall performance drop (tested on Pi3B+ and Tontec 3.5" 480x320 display on gpu test pattern, see branch non_intermediate_memcpy_for_dma). Therefore just keep doing + // this memcpy() to prepare for DMA to do its memcpy(), as it is faster overall. (If there was a way to map same physical memory to virtual address space twice, once cached, and + // another time uncached, and have writes bypass the cache and only write combine, but have reads follow the cache, then it might work without a perf hit, but not at all sure if + // that would be technically possible) + uint16_t *txPtr = (uint16_t*)(txData+1); + + // If task->prevFb is present, the DMA backend is responsible for streaming pixel data from current framebuffer to old framebuffer, and the DMA task buffer. + // If not present, then that preparation has been already done by the caller. +#ifdef OFFLOAD_PIXEL_COPY_TO_DMA_CPP + if (prevData) + { + // For 2D pixel data, do a "everything in one pass" + if (taskAndFramebufferSizesCompatibleWithTightMemcpy) + memcpy_to_dma_and_prev_framebuffer((uint16_t*)txPtr, (uint16_t**)&prevData, (uint16_t**)&data, sendSize, &taskStartX, task->width, gpuFramebufferScanlineStrideBytes); + else + memcpy_to_dma_and_prev_framebuffer_in_c((uint16_t*)txPtr, (uint16_t**)&prevData, (uint16_t**)&data, sendSize, &taskStartX, task->width, gpuFramebufferScanlineStrideBytes); + } + else +#endif + { + memcpy(txPtr, data, sendSize); + data += sendSize; + } + + tx->ti = BCM2835_DMA_TI_PERMAP(BCM2835_DMA_TI_PERMAP_SPI_TX) | BCM2835_DMA_TI_DEST_DREQ | BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_WAIT_RESP; + tx->src = VIRT_TO_BUS(dmaSourceBuffer, txData); + tx->dst = DMA_SPI_FIFO_PHYS_ADDRESS; // Write out to the SPI peripheral + tx->len = 4+sendSize; + tx->next = 0; + txData += 1+sendSize/4; + + volatile DMAControlBlock *rx = cb++; + rx->ti = BCM2835_DMA_TI_PERMAP(BCM2835_DMA_TI_PERMAP_SPI_RX) | BCM2835_DMA_TI_SRC_DREQ | BCM2835_DMA_TI_DEST_IGNORE; + rx->src = DMA_SPI_FIFO_PHYS_ADDRESS; + rx->dst = 0; + rx->len = sendSize; + rx->next = 0; + + if (rxTail) + { + volatile DMAControlBlock *setDMATxAddress = cb++; + volatile DMAControlBlock *disableTransferActive = cb++; + volatile DMAControlBlock *startDMATxChannel = cb++; + + rxTail->next = VIRT_TO_BUS(dmaCb, setDMATxAddress); + + setDMATxAddressData[0] = VIRT_TO_BUS(dmaCb, tx); + setDMATxAddress->ti = BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_DEST_INC | BCM2835_DMA_TI_WAIT_RESP; + setDMATxAddress->src = VIRT_TO_BUS(dmaSourceBuffer, setDMATxAddressData); + setDMATxAddress->dst = DMA_DMA0_CB_PHYS_ADDRESS + dmaTxChannel*0x100 + 4; + setDMATxAddress->len = 4; + setDMATxAddress->next = VIRT_TO_BUS(dmaCb, disableTransferActive); + ++setDMATxAddressData; + + disableTransferActive->ti = BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_DEST_INC | BCM2835_DMA_TI_WAIT_RESP; + disableTransferActive->src = dmaConstantData.busAddress; + disableTransferActive->dst = DMA_SPI_CS_PHYS_ADDRESS; + disableTransferActive->len = 4; + disableTransferActive->next = VIRT_TO_BUS(dmaCb, startDMATxChannel); + + startDMATxChannel->ti = BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_DEST_INC | BCM2835_DMA_TI_WAIT_RESP; + startDMATxChannel->src = dmaConstantData.busAddress+4; + startDMATxChannel->dst = DMA_DMA0_CB_PHYS_ADDRESS + dmaTxChannel*0x100; + startDMATxChannel->len = 4; + startDMATxChannel->next = VIRT_TO_BUS(dmaCb, rx); + + } + rxTail = rx; + } + + static uint64_t taskStartTime = 0; + static int pendingTaskBytes = 1; + double pendingTaskUSecs = pendingTaskBytes * spiUsecsPerByte; + pendingTaskUSecs -= tick() - taskStartTime; + if (pendingTaskUSecs > 70) + usleep(pendingTaskUSecs-70); + + uint64_t dmaTaskStart = tick(); + + CheckSPIDMAChannelsNotStolen(); + while((dmaTx->cs & BCM2835_DMA_CS_ACTIVE) && programRunning) + { + usleep(250); + CheckSPIDMAChannelsNotStolen(); + if (tick() - dmaTaskStart > 5000000) + { + DumpDMAState(); + FATAL_ERROR("DMA TX channel has stalled!"); + } + } + while((dmaRx->cs & BCM2835_DMA_CS_ACTIVE) && programRunning) + { + usleep(250); + CheckSPIDMAChannelsNotStolen(); + if (tick() - dmaTaskStart > 5000000) + { + DumpDMAState(); + FATAL_ERROR("DMA RX channel has stalled!"); + } + } + if (!programRunning) return; + + pendingTaskBytes = task->PayloadSize(); + + // First send the SPI command byte in Polled SPI mode + spi->cs = BCM2835_SPI0_CS_TA | BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; + +#ifndef SPI_3WIRE_PROTOCOL + CLEAR_GPIO(GPIO_TFT_DATA_CONTROL); +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + spi->fifo = 0; + spi->fifo = task->cmd; + while(!(spi->cs & (BCM2835_SPI0_CS_DONE))) /*nop*/; + // spi->fifo; // Currently no need to flush these, the clear below clears the rx queue. + // spi->fifo; +#else + spi->fifo = task->cmd; + while(!(spi->cs & (BCM2835_SPI0_CS_RXD|BCM2835_SPI0_CS_DONE))) /*nop*/; + // spi->fifo; // Currently no need to flush this, the clear below clears the rx queue. +#endif + + SET_GPIO(GPIO_TFT_DATA_CONTROL); +#endif + + spi->cs = BCM2835_SPI0_CS_DMAEN | BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; + + dmaTx->cbAddr = VIRT_TO_BUS(dmaCb, tx0); + dmaRx->cbAddr = VIRT_TO_BUS(dmaCb, rx0); + __sync_synchronize(); + dmaTx->cs = BCM2835_DMA_CS_ACTIVE | BCM2835_DMA_CS_END; + dmaRx->cs = BCM2835_DMA_CS_ACTIVE | BCM2835_DMA_CS_END; + taskStartTime = tick(); +} + +#else + +void SPIDMATransfer(SPITask *task) +{ + // Transition the SPI peripheral to enable the use of DMA + spi->cs = BCM2835_SPI0_CS_DMAEN | BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; + uint32_t *headerAddr = task->DmaSpiHeaderAddress(); + *headerAddr = BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS | (task->PayloadSize() << 16); // The first four bytes written to the SPI data register control the DLEN and CS,CPOL,CPHA settings. + + // TODO: Ideally we would be able to directly perform the DMA from the SPI ring buffer from 'task' pointer. However + // that pointer is shared to userland, and it is proving troublesome to make it both userland-writable as well as cache-bypassing DMA coherent. + // Therefore these two memory areas are separate for now, and we memcpy() from SPI ring buffer to an intermediate 'dmaSourceMemory' memory area to perform + // the DMA transfer. Is there a way to avoid this intermediate buffer? That would improve performance a bit. + memcpy(dmaSourceBuffer.virtualAddr, headerAddr, task->PayloadSize() + 4); + + volatile DMAControlBlock *cb = (volatile DMAControlBlock *)dmaCb.virtualAddr; + volatile DMAControlBlock *txcb = &cb[0]; + txcb->ti = BCM2835_DMA_TI_PERMAP(BCM2835_DMA_TI_PERMAP_SPI_TX) | BCM2835_DMA_TI_DEST_DREQ | BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_WAIT_RESP; + txcb->src = dmaSourceBuffer.busAddress; + txcb->dst = DMA_SPI_FIFO_PHYS_ADDRESS; // Write out to the SPI peripheral + txcb->len = task->PayloadSize() + 4; + txcb->stride = 0; + txcb->next = 0; + txcb->debug = 0; + txcb->reserved = 0; + dmaTx->cbAddr = dmaCb.busAddress; + + volatile DMAControlBlock *rxcb = &cb[1]; + rxcb->ti = BCM2835_DMA_TI_PERMAP(BCM2835_DMA_TI_PERMAP_SPI_RX) | BCM2835_DMA_TI_SRC_DREQ | BCM2835_DMA_TI_DEST_IGNORE; + rxcb->src = DMA_SPI_FIFO_PHYS_ADDRESS; + rxcb->dst = 0; + rxcb->len = task->PayloadSize(); + rxcb->stride = 0; + rxcb->next = 0; + rxcb->debug = 0; + rxcb->reserved = 0; + dmaRx->cbAddr = dmaCb.busAddress + sizeof(DMAControlBlock); + + __sync_synchronize(); + dmaTx->cs = BCM2835_DMA_CS_ACTIVE; + dmaRx->cs = BCM2835_DMA_CS_ACTIVE; + __sync_synchronize(); + + double pendingTaskUSecs = task->PayloadSize() * spiUsecsPerByte; + if (pendingTaskUSecs > 70) + usleep(pendingTaskUSecs-70); + + uint64_t dmaTaskStart = tick(); + + CheckSPIDMAChannelsNotStolen(); + while((dmaTx->cs & BCM2835_DMA_CS_ACTIVE)) + { + CheckSPIDMAChannelsNotStolen(); + if (tick() - dmaTaskStart > 5000000) + FATAL_ERROR("DMA TX channel has stalled!"); + } + while((dmaRx->cs & BCM2835_DMA_CS_ACTIVE)) + { + CheckSPIDMAChannelsNotStolen(); + if (tick() - dmaTaskStart > 5000000) + FATAL_ERROR("DMA RX channel has stalled!"); + } + + __sync_synchronize(); + spi->cs = BCM2835_SPI0_CS_TA | BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; + __sync_synchronize(); +} + +#endif + +void DeinitDMA(void) +{ + WaitForDMAFinished(); + ResetDMAChannels(); + FreeUncachedGpuMemory(dmaSourceBuffer); + FreeUncachedGpuMemory(dmaCb); + FreeUncachedGpuMemory(dmaConstantData); + if (dmaTxChannel != -1) + { + FreeDMAChannel(dmaTxChannel); + dmaTxChannel = -1; + } + if (dmaRxChannel != -1) + { + FreeDMAChannel(dmaRxChannel); + dmaRxChannel = -1; + } +} + + +#endif // ~USE_DMA_TRANSFERS diff --git a/usr/fbcp-ili9341/dma.h b/usr/fbcp-ili9341/dma.h new file mode 100644 index 0000000..511971f --- /dev/null +++ b/usr/fbcp-ili9341/dma.h @@ -0,0 +1,141 @@ +#pragma once + +#ifdef USE_DMA_TRANSFERS + +#define BCM2835_DMA0_OFFSET 0x7000 // DMA channels 0-14 live at 0x7E007000, offset of 0x7000 of BCM2835 peripherals base address + +#define BCM2835_DMAENABLE_REGISTER_OFFSET 0xff0 + +typedef struct __attribute__ ((packed, aligned(4))) DMAControlBlock +{ + uint32_t ti; + uint32_t src; + uint32_t dst; + uint32_t len; + uint32_t stride; + uint32_t next; + uint32_t debug; + uint32_t reserved; +} DMAControlBlock; + +typedef struct __attribute__ ((packed, aligned(4))) DMAChannelRegisterFile +{ + volatile uint32_t cs; + volatile uint32_t cbAddr; + volatile DMAControlBlock cb; + volatile uint8_t padding[216]; // Pad this structure to 256 bytes in size total for easy indexing into DMA channels. +} DMAChannelRegisterFile; + +extern int dmaTxChannel, dmaTxIrq; +extern volatile DMAChannelRegisterFile *dmaTx; // DMA channel allocated to sending to SPI +extern int dmaRxChannel, dmaRxIrq; +extern volatile DMAChannelRegisterFile *dmaRx; // DMA channel allocated to reading from SPI + +volatile DMAChannelRegisterFile *GetDMAChannel(int channelNumber); + +#define BCM2835_DMA_CS_RESET (1<<31) +#define BCM2835_DMA_CS_ABORT (1<<30) +#define BCM2835_DMA_CS_DISDEBUG (1<<29) +#define BCM2835_DMA_CS_WAIT_FOR_OUTSTANDING_WRITES (1<<28) +#define BCM2835_DMA_CS_PANIC_PRIORITY (0xF<<20) +#define BCM2835_DMA_CS_PRIORITY (0xF<<16) +#define BCM2835_DMA_CS_ERROR (1<<8) +#define BCM2835_DMA_CS_WAITING_FOR_OUTSTANDING_WRITES (1<<6) +#define BCM2835_DMA_CS_DREQ_STOPS_DMA (1<<5) +#define BCM2835_DMA_CS_PAUSED (1<<4) +#define BCM2835_DMA_CS_DREQ (1<<3) +#define BCM2835_DMA_CS_INT (1<<2) +#define BCM2835_DMA_CS_END (1<<1) +#define BCM2835_DMA_CS_ACTIVE (1<<0) + +#define BCM2835_DMA_CS_SET_PANIC_PRIORITY(p) ((p) << 20) +#define BCM2835_DMA_CS_SET_PRIORITY(p) ((p) << 16) + +#define BCM2835_DMA_CS_RESET_SHIFT 31 +#define BCM2835_DMA_CS_ABORT_SHIFT 30 +#define BCM2835_DMA_CS_DISDEBUG_SHIFT 29 +#define BCM2835_DMA_CS_WAIT_FOR_OUTSTANDING_WRITES_SHIFT 28 +#define BCM2835_DMA_CS_PANIC_PRIORITY_SHIFT 20 +#define BCM2835_DMA_CS_PRIORITY_SHIFT 16 +#define BCM2835_DMA_CS_ERROR_SHIFT 8 +#define BCM2835_DMA_CS_WAITING_FOR_OUTSTANDING_WRITES_SHIFT 6 +#define BCM2835_DMA_CS_DREQ_STOPS_DMA_SHIFT 5 +#define BCM2835_DMA_CS_PAUSED_SHIFT 4 +#define BCM2835_DMA_CS_DREQ_SHIFT 3 +#define BCM2835_DMA_CS_INT_SHIFT 2 +#define BCM2835_DMA_CS_END_SHIFT 1 +#define BCM2835_DMA_CS_ACTIVE_SHIFT 0 + +#define BCM2835_DMA_DEBUG_LITE (1<<28) +#define BCM2835_DMA_DEBUG_VERSION (7<<25) +#define BCM2835_DMA_DEBUG_DMA_STATE (0x1FF<<16) +#define BCM2835_DMA_DEBUG_DMA_ID (0xFF<<8) +#define BCM2835_DMA_DEBUG_DMA_OUTSTANDING_WRITES (0xF<<4) +#define BCM2835_DMA_DEBUG_DMA_READ_ERROR (1<<2) +#define BCM2835_DMA_DEBUG_DMA_FIFO_ERROR (1<<1) +#define BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR (1<<0) + +#define BCM2835_DMA_DEBUG_LITE_SHIFT 28 +#define BCM2835_DMA_DEBUG_VERSION_SHIFT 25 +#define BCM2835_DMA_DEBUG_DMA_STATE_SHIFT 16 +#define BCM2835_DMA_DEBUG_DMA_ID_SHIFT 8 +#define BCM2835_DMA_DEBUG_DMA_OUTSTANDING_WRITES_SHIFT 4 +#define BCM2835_DMA_DEBUG_DMA_READ_ERROR_SHIFT 2 +#define BCM2835_DMA_DEBUG_DMA_FIFO_ERROR_SHIFT 1 +#define BCM2835_DMA_DEBUG_READ_LAST_NOT_SET_ERROR_SHIFT 0 + +#define BCM2835_DMA_TI_NO_WIDE_BURSTS (1<<26) +#define BCM2835_DMA_TI_WAITS (0x1F<<21) +#define BCM2835_DMA_TI_PERMAP(x) ((x)<<16) +#define BCM2835_DMA_TI_PERMAP_MASK (0x1F<<16) +#define BCM2835_DMA_TI_PERMAP_SPI_TX 6 +#define BCM2835_DMA_TI_PERMAP_SPI_RX 7 +#define BCM2835_DMA_TI_BURST_LENGTH(x) ((x)<<12) +#define BCM2835_DMA_TI_SRC_IGNORE (1<<11) +#define BCM2835_DMA_TI_SRC_DREQ (1<<10) +#define BCM2835_DMA_TI_SRC_WIDTH (1<<9) +#define BCM2835_DMA_TI_SRC_INC (1<<8) +#define BCM2835_DMA_TI_DEST_IGNORE (1<<7) +#define BCM2835_DMA_TI_DEST_DREQ (1<<6) +#define BCM2835_DMA_TI_DEST_WIDTH (1<<5) +#define BCM2835_DMA_TI_DEST_INC (1<<4) +#define BCM2835_DMA_TI_WAIT_RESP (1<<3) +#define BCM2835_DMA_TI_TDMODE (1<<1) +#define BCM2835_DMA_TI_INTEN (1<<0) + +#define BCM2835_DMA_TI_NO_WIDE_BURSTS_SHIFT 26 +#define BCM2835_DMA_TI_WAITS_SHIFT 21 +#define BCM2835_DMA_TI_PERMAP_SHIFT 16 +#define BCM2835_DMA_TI_BURST_LENGTH_SHIFT 12 +#define BCM2835_DMA_TI_SRC_IGNORE_SHIFT 11 +#define BCM2835_DMA_TI_SRC_DREQ_SHIFT 10 +#define BCM2835_DMA_TI_SRC_WIDTH_SHIFT 9 +#define BCM2835_DMA_TI_SRC_INC_SHIFT 8 +#define BCM2835_DMA_TI_DEST_IGNORE_SHIFT 7 +#define BCM2835_DMA_TI_DEST_DREQ_SHIFT 6 +#define BCM2835_DMA_TI_DEST_WIDTH_SHIFT 5 +#define BCM2835_DMA_TI_DEST_INC_SHIFT 4 +#define BCM2835_DMA_TI_WAIT_RESP_SHIFT 3 +#define BCM2835_DMA_TI_TDMODE_SHIFT 1 +#define BCM2835_DMA_TI_INTEN_SHIFT 0 + +// Spec sheet says there's 16 channels, but last channel is unusable: +// https://www.raspberrypi.org/forums/viewtopic.php?t=170957 +// So just behave as if there are only 15 channels +#define BCM2835_NUM_DMA_CHANNELS 15 + +void WaitForDMAFinished(void); + +// Reserves and enables a DMA channel for SPI transfers. +int InitDMA(void); +void DeinitDMA(void); + +typedef struct SPITask SPITask; + +void SPIDMATransfer(SPITask *task); + +extern int dmaTxChannel; +extern int dmaRxChannel; +extern uint64_t totalGpuMemoryUsed; + +#endif diff --git a/usr/fbcp-ili9341/example.jpg b/usr/fbcp-ili9341/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b86d9341999ae6be07973d64c26aa1e07cd1abb2 GIT binary patch literal 305730 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 z%0A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

6^Ar*8fF(-Kn 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 z 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%0AHcRz$HO*XG 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 tD$lFEMx;{na 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 literal 0 HcmV?d00001 diff --git a/usr/fbcp-ili9341/fbcp-ili9341.cpp b/usr/fbcp-ili9341/fbcp-ili9341.cpp new file mode 100644 index 0000000..88d242d --- /dev/null +++ b/usr/fbcp-ili9341/fbcp-ili9341.cpp @@ -0,0 +1,579 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "text.h" +#include "spi.h" +#include "gpu.h" +#include "statistics.h" +#include "tick.h" +#include "display.h" +#include "util.h" +#include "mailbox.h" +#include "diff.h" +#include "mem_alloc.h" +#include "keyboard.h" +#include "low_battery.h" + +int CountNumChangedPixels(uint16_t *framebuffer, uint16_t *prevFramebuffer) +{ + int changedPixels = 0; + for(int y = 0; y < gpuFrameHeight; ++y) + { + for(int x = 0; x < gpuFrameWidth; ++x) + if (framebuffer[x] != prevFramebuffer[x]) + ++changedPixels; + + framebuffer += gpuFramebufferScanlineStrideBytes >> 1; + prevFramebuffer += gpuFramebufferScanlineStrideBytes >> 1; + } + return changedPixels; +} + +uint64_t displayContentsLastChanged = 0; +bool displayOff = false; + +volatile bool programRunning = true; + +const char *SignalToString(int signal) +{ + if (signal == SIGINT) return "SIGINT"; + if (signal == SIGQUIT) return "SIGQUIT"; + if (signal == SIGUSR1) return "SIGUSR1"; + if (signal == SIGUSR2) return "SIGUSR2"; + if (signal == SIGTERM) return "SIGTERM"; + return "?"; +} + +void MarkProgramQuitting() +{ + programRunning = false; +} + +void ProgramInterruptHandler(int signal) +{ + printf("Signal %s(%d) received, quitting\n", SignalToString(signal), signal); + static int quitHandlerCalled = 0; + if (++quitHandlerCalled >= 5) + { + printf("Ctrl-C handler invoked five times, looks like fbcp-ili9341 is not gracefully quitting - performing a forcible shutdown!\n"); + exit(1); + } + MarkProgramQuitting(); + __sync_synchronize(); + // Wake the SPI thread if it was sleeping so that it can gracefully quit + if (spiTaskMemory) + { + __atomic_fetch_add(&spiTaskMemory->queueHead, 1, __ATOMIC_SEQ_CST); + __atomic_fetch_add(&spiTaskMemory->queueTail, 1, __ATOMIC_SEQ_CST); + syscall(SYS_futex, &spiTaskMemory->queueTail, FUTEX_WAKE, 1, 0, 0, 0); // Wake the SPI thread if it was sleeping to get new tasks + } + + // Wake the main thread if it was sleeping for a new frame so that it can gracefully quit + __atomic_fetch_add(&numNewGpuFrames, 1, __ATOMIC_SEQ_CST); + syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAKE, 1, 0, 0, 0); +} + +int main() +{ + signal(SIGINT, ProgramInterruptHandler); + signal(SIGQUIT, ProgramInterruptHandler); + signal(SIGUSR1, ProgramInterruptHandler); + signal(SIGUSR2, ProgramInterruptHandler); + signal(SIGTERM, ProgramInterruptHandler); +#ifdef RUN_WITH_REALTIME_THREAD_PRIORITY + SetRealtimeThreadPriority(); +#endif + OpenMailbox(); + InitSPI(); + displayContentsLastChanged = tick(); + displayOff = false; + InitLowBatterySystem(); + + // Track current SPI display controller write X and Y cursors. + int spiX = -1; + int spiY = -1; + int spiEndX = DISPLAY_WIDTH; + + InitGPU(); + + spans = (Span*)Malloc((gpuFrameWidth * gpuFrameHeight / 2) * sizeof(Span), "main() task spans"); + int size = gpuFramebufferSizeBytes; +#ifdef USE_GPU_VSYNC + // BUG in vc_dispmanx_resource_read_data(!!): If one is capturing a small subrectangle of a large screen resource rectangle, the destination pointer + // is in vc_dispmanx_resource_read_data() incorrectly still taken to point to the top-left corner of the large screen resource, instead of the top-left + // corner of the subrectangle to capture. Therefore do dirty pointer arithmetic to adjust for this. To make this safe, videoCoreFramebuffer is allocated + // double its needed size so that this adjusted pointer does not reference outside allocated memory (if it did, vc_dispmanx_resource_read_data() was seen + // to randomly fail and then subsequently hang if called a second time) + size *= 2; +#endif + uint16_t *framebuffer[2] = { (uint16_t *)Malloc(size, "main() framebuffer0"), (uint16_t *)Malloc(gpuFramebufferSizeBytes, "main() framebuffer1") }; + memset(framebuffer[0], 0, size); // Doublebuffer received GPU memory contents, first buffer contains current GPU memory, + memset(framebuffer[1], 0, gpuFramebufferSizeBytes); // second buffer contains whatever the display is currently showing. This allows diffing pixels between the two. +#ifdef USE_GPU_VSYNC + // Due to the above bug. In USE_GPU_VSYNC mode, we directly snapshot to framebuffer[0], so it has to be prepared specially to work around the + // dispmanx bug. + framebuffer[0] += (gpuFramebufferSizeBytes>>1); +#endif + + uint32_t curFrameEnd = spiTaskMemory->queueTail; + uint32_t prevFrameEnd = spiTaskMemory->queueTail; + + bool prevFrameWasInterlacedUpdate = false; + bool interlacedUpdate = false; // True if the previous update we did was an interlaced half field update. + int frameParity = 0; // For interlaced frame updates, this is either 0 or 1 to denote evens or odds. + OpenKeyboard(); + printf("All initialized, now running main loop...\n"); + while(programRunning) + { + prevFrameWasInterlacedUpdate = interlacedUpdate; + + // If last update was interlaced, it means we still have half of the image pending to be updated. In such a case, + // sleep only until when we expect the next new frame of data to appear, and then continue independent of whether + // a new frame was produced or not - if not, then we will submit the rest of the unsubmitted fields. If yes, then + // the half fields of the new frame will be sent (or full, if the new frame has very little content) + if (prevFrameWasInterlacedUpdate) + { +#ifdef THROTTLE_INTERLACING + timespec timeout = {}; + timeout.tv_nsec = 1000 * MIN(1000000, MAX(1, 750/*0.75ms extra sleep so we know we should likely sleep long enough to see the next frame*/ + PredictNextFrameArrivalTime() - tick())); + if (programRunning) syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAIT, 0, &timeout, 0, 0); // Start sleeping until we get new tasks +#endif + // If THROTTLE_INTERLACING is not defined, we'll fall right through and immediately submit the rest of the remaining content on screen to attempt to minimize the visual + // observable effect of interlacing, although at the expense of smooth animation (falling through here causes jitter) + } + else + { + uint64_t waitStart = tick(); + while(__atomic_load_n(&numNewGpuFrames, __ATOMIC_SEQ_CST) == 0) + { +#if defined(BACKLIGHT_CONTROL) && defined(TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY) + if (!displayOff && tick() - waitStart > TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY) + { + TurnDisplayOff(); + displayOff = true; + } + + if (!displayOff) + { + timespec timeout = {}; + timeout.tv_sec = ((uint64_t)TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY * 1000) / 1000000000; + timeout.tv_nsec = ((uint64_t)TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY * 1000) % 1000000000; + if (programRunning) syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAIT, 0, &timeout, 0, 0); // Sleep until the next frame arrives + } + else +#endif + if (programRunning) syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAIT, 0, 0, 0, 0); // Sleep until the next frame arrives + } + } + + bool spiThreadWasWorkingHardBefore = false; + + // At all times keep at most two rendered frames in the SPI task queue pending to be displayed. Only proceed to submit a new frame + // once the older of those has been displayed. + bool once = true; + while ((spiTaskMemory->queueTail + SPI_QUEUE_SIZE - spiTaskMemory->queueHead) % SPI_QUEUE_SIZE > (spiTaskMemory->queueTail + SPI_QUEUE_SIZE - prevFrameEnd) % SPI_QUEUE_SIZE) + { + if (spiTaskMemory->spiBytesQueued > 10000) + spiThreadWasWorkingHardBefore = true; // SPI thread had too much work in queue atm (2 full frames) + + // Peek at the SPI thread's workload and throttle a bit if it has got a lot of work still to do. + double usecsUntilSpiQueueEmpty = spiTaskMemory->spiBytesQueued*spiUsecsPerByte; + if (usecsUntilSpiQueueEmpty > 0) + { + uint32_t bytesInQueueBefore = spiTaskMemory->spiBytesQueued; + uint32_t sleepUsecs = (uint32_t)(usecsUntilSpiQueueEmpty*0.4); +#ifdef STATISTICS + uint64_t t0 = tick(); +#endif + if (sleepUsecs > 1000) usleep(500); + +#ifdef STATISTICS + uint64_t t1 = tick(); + uint32_t bytesInQueueAfter = spiTaskMemory->spiBytesQueued; + bool starved = (spiTaskMemory->queueHead == spiTaskMemory->queueTail); + if (starved) spiThreadWasWorkingHardBefore = false; + +/* + if (once && starved) + { + printf("Had %u bytes in queue, asked to sleep for %u usecs, got %u usecs sleep, afterwards %u bytes in queue. (got %.2f%% work done)%s\n", + bytesInQueueBefore, sleepUsecs, (uint32_t)(t1 - t0), bytesInQueueAfter, (bytesInQueueBefore-bytesInQueueAfter)*100.0/bytesInQueueBefore, + starved ? " SLEPT TOO LONG, SPI THREAD STARVED" : ""); + once = false; + } +*/ +#endif + } + } + + int expiredFrames = 0; + uint64_t now = tick(); + while(expiredFrames < frameTimeHistorySize && now - frameTimeHistory[expiredFrames].time >= FRAMERATE_HISTORY_LENGTH) ++expiredFrames; + if (expiredFrames > 0) + { + frameTimeHistorySize -= expiredFrames; + for(int i = 0; i < frameTimeHistorySize; ++i) frameTimeHistory[i] = frameTimeHistory[i+expiredFrames]; + } + +#ifdef STATISTICS + int expiredSkippedFrames = 0; + while(expiredSkippedFrames < frameSkipTimeHistorySize && now - frameSkipTimeHistory[expiredSkippedFrames] >= 1000000/*FRAMERATE_HISTORY_LENGTH*/) ++expiredSkippedFrames; + if (expiredSkippedFrames > 0) + { + frameSkipTimeHistorySize -= expiredSkippedFrames; + for(int i = 0; i < frameSkipTimeHistorySize; ++i) frameSkipTimeHistory[i] = frameSkipTimeHistory[i+expiredSkippedFrames]; + } +#endif + + int numNewFrames = __atomic_load_n(&numNewGpuFrames, __ATOMIC_SEQ_CST); + bool gotNewFramebuffer = (numNewFrames > 0); + bool framebufferHasNewChangedPixels = true; + uint64_t frameObtainedTime; + if (gotNewFramebuffer) + { +#ifdef USE_GPU_VSYNC + // TODO: Hardcoded vsync interval to 60 for now. Would be better to compute yet another histogram of the vsync arrival times, if vsync is not set to 60hz. + // N.B. copying directly to videoCoreFramebuffer[1] that may be directly accessed by the main thread, so this could + // produce a visible tear between two adjacent frames, but since we don't have vsync anyways, currently not caring too much. + + frameObtainedTime = tick(); + uint64_t framePollingStartTime = frameObtainedTime; + +#if defined(SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES) || defined(SAVE_BATTERY_BY_SLEEPING_WHEN_IDLE) + uint64_t nextFrameArrivalTime = PredictNextFrameArrivalTime(); + int64_t timeToSleep = nextFrameArrivalTime - tick(); + if (timeToSleep > 0) + usleep(timeToSleep); +#endif + + framebufferHasNewChangedPixels = SnapshotFramebuffer(framebuffer[0]); +#else + memcpy(framebuffer[0], videoCoreFramebuffer[1], gpuFramebufferSizeBytes); +#endif + + PollLowBattery(); + +#ifdef STATISTICS + uint64_t now = tick(); + for(int i = 0; i < numNewFrames - 1 && frameSkipTimeHistorySize < FRAMERATE_HISTORY_LENGTH; ++i) + frameSkipTimeHistory[frameSkipTimeHistorySize++] = now; +#endif + __atomic_fetch_sub(&numNewGpuFrames, numNewFrames, __ATOMIC_SEQ_CST); + + DrawStatisticsOverlay(framebuffer[0]); + DrawLowBatteryIcon(framebuffer[0]); + +#ifdef USE_GPU_VSYNC + +#ifdef STATISTICS + uint64_t completelyUnnecessaryTimeWastedPollingGPUStart = tick(); +#endif + + // DispmanX PROBLEM! When latching onto the vsync signal, the DispmanX API sends the signal at arbitrary phase with respect to the application actually producing its frames. + // Therefore even while we do get a smooth 16.666.. msec interval vsync signal, we have no idea whether the application has actually produced a new frame at that time. Therefore + // we must keep polling for frames until we find one that it has produced. +#ifdef SELF_SYNCHRONIZE_TO_GPU_VSYNC_PRODUCED_NEW_FRAMES + framebufferHasNewChangedPixels = framebufferHasNewChangedPixels && IsNewFramebuffer(framebuffer[0], framebuffer[1]); + uint64_t timeToGiveUpThereIsNotGoingToBeANewFrame = framePollingStartTime + 1000000/TARGET_FRAME_RATE/2; + while(!framebufferHasNewChangedPixels && tick() < timeToGiveUpThereIsNotGoingToBeANewFrame) + { + usleep(2000); + frameObtainedTime = tick(); + framebufferHasNewChangedPixels = SnapshotFramebuffer(framebuffer[0]); + DrawStatisticsOverlay(framebuffer[0]); + DrawLowBatteryIcon(framebuffer[0]); + framebufferHasNewChangedPixels = framebufferHasNewChangedPixels && IsNewFramebuffer(framebuffer[0], framebuffer[1]); + } +#else + framebufferHasNewChangedPixels = true; +#endif + + numNewFrames = __atomic_load_n(&numNewGpuFrames, __ATOMIC_SEQ_CST); + __atomic_fetch_sub(&numNewGpuFrames, numNewFrames, __ATOMIC_SEQ_CST); + +#ifdef STATISTICS + now = tick(); + for(int i = 0; i < numNewFrames - 1 && frameSkipTimeHistorySize < FRAMERATE_HISTORY_LENGTH; ++i) + frameSkipTimeHistory[frameSkipTimeHistorySize++] = now; + + uint64_t completelyUnnecessaryTimeWastedPollingGPUStop = tick(); + __atomic_fetch_add(&timeWastedPollingGPU, completelyUnnecessaryTimeWastedPollingGPUStop-completelyUnnecessaryTimeWastedPollingGPUStart, __ATOMIC_RELAXED); +#endif + +#else // !USE_GPU_VSYNC + if (!displayOff) + RefreshStatisticsOverlayText(); +#endif + } + + // If too many pixels have changed on screen, drop adaptively to interlaced updating to keep up the frame rate. + double inputDataFps = 1000000.0 / EstimateFrameRateInterval(); + double desiredTargetFps = MAX(1, MIN(inputDataFps, TARGET_FRAME_RATE)); +#ifdef SINGLE_CORE_BOARD + const double timesliceToUseForScreenUpdates = 250000; +#elif defined(ILI9486) || defined(ILI9486L) ||defined(HX8357D) + const double timesliceToUseForScreenUpdates = 750000; +#else + const double timesliceToUseForScreenUpdates = 1500000; +#endif + const double tooMuchToUpdateUsecs = timesliceToUseForScreenUpdates / desiredTargetFps; // If updating the current and new frame takes too many frames worth of allotted time, drop to interlacing. + +#if !defined(NO_INTERLACING) || (defined(BACKLIGHT_CONTROL) && defined(TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY)) + int numChangedPixels = framebufferHasNewChangedPixels ? CountNumChangedPixels(framebuffer[0], framebuffer[1]) : 0; +#endif + +#ifdef NO_INTERLACING + interlacedUpdate = false; +#elif defined(ALWAYS_INTERLACING) + interlacedUpdate = (numChangedPixels > 0); +#else + uint32_t bytesToSend = numChangedPixels * SPI_BYTESPERPIXEL + (DISPLAY_DRAWABLE_HEIGHT<<1); + interlacedUpdate = ((bytesToSend + spiTaskMemory->spiBytesQueued) * spiUsecsPerByte > tooMuchToUpdateUsecs); // Decide whether to do interlacedUpdate - only updates half of the screen +#endif + + if (interlacedUpdate) frameParity = 1-frameParity; // Swap even-odd fields every second time we do an interlaced update (progressive updates ignore field order) + int bytesTransferred = 0; + Span *head = 0; + +#if defined(ALL_TASKS_SHOULD_DMA) && defined(UPDATE_FRAMES_WITHOUT_DIFFING) + NoDiffChangedRectangle(head); +#elif defined(ALL_TASKS_SHOULD_DMA) && defined(UPDATE_FRAMES_IN_SINGLE_RECTANGULAR_DIFF) + DiffFramebuffersToSingleChangedRectangle(framebuffer[0], framebuffer[1], head); +#else + // Collect all spans in this image + if (framebufferHasNewChangedPixels || prevFrameWasInterlacedUpdate) + { + // If possible, utilize a faster 4-wide pixel diffing method +#ifdef FAST_BUT_COARSE_PIXEL_DIFF + if (gpuFrameWidth % 4 == 0 && gpuFramebufferScanlineStrideBytes % 8 == 0) + DiffFramebuffersToScanlineSpansFastAndCoarse4Wide(framebuffer[0], framebuffer[1], interlacedUpdate, frameParity, head); + else +#endif + DiffFramebuffersToScanlineSpansExact(framebuffer[0], framebuffer[1], interlacedUpdate, frameParity, head); // If disabled, or framebuffer width is not compatible, use the exact method + } + + // Merge spans together on adjacent scanlines - works only if doing a progressive update + if (!interlacedUpdate) + MergeScanlineSpanList(head); +#endif + +#ifdef USE_GPU_VSYNC + if (head) // do we have a new frame? + { + // If using vsync, this main thread is responsible for maintaining the frame histogram. If not using vsync, + // but instead are using a dedicated GPU thread, then that dedicated thread maintains the frame histogram, + // in which case this is not needed. + AddHistogramSample(frameObtainedTime); + + // We got a new frame, so update contents of the statistics overlay as well + if (!displayOff) + RefreshStatisticsOverlayText(); + } +#endif + + // Submit spans + if (!displayOff) + for(Span *i = head; i; i = i->next) + { +#ifdef ALIGN_TASKS_FOR_DMA_TRANSFERS + // DMA transfers smaller than 4 bytes are causing trouble, so in order to ensure smooth DMA operation, + // make sure each message is at least 4 bytes in size, hence one pixel spans are forbidden: + if (i->size == 1) + { + if (i->endX < DISPLAY_DRAWABLE_WIDTH) { ++i->endX; ++i->lastScanEndX; } + else --i->x; + ++i->size; + } +#endif + // Update the write cursor if needed +#ifndef DISPLAY_WRITE_PIXELS_CMD_DOES_NOT_RESET_WRITE_CURSOR + if (spiY != i->y) +#endif + { +#if defined(MUST_SEND_FULL_CURSOR_WINDOW) || defined(ALIGN_TASKS_FOR_DMA_TRANSFERS) + QUEUE_SET_WRITE_WINDOW_TASK(DISPLAY_SET_CURSOR_Y, displayYOffset + i->y, displayYOffset + gpuFrameHeight - 1); +#else + QUEUE_MOVE_CURSOR_TASK(DISPLAY_SET_CURSOR_Y, displayYOffset + i->y); +#endif + IN_SINGLE_THREADED_MODE_RUN_TASK(); + spiY = i->y; + } + + if (i->endY > i->y + 1 && (spiX != i->x || spiEndX != i->endX)) // Multiline span? + { + QUEUE_SET_WRITE_WINDOW_TASK(DISPLAY_SET_CURSOR_X, displayXOffset + i->x, displayXOffset + i->endX - 1); + IN_SINGLE_THREADED_MODE_RUN_TASK(); + spiX = i->x; + spiEndX = i->endX; + } + else // Singleline span + { +#ifdef ALIGN_TASKS_FOR_DMA_TRANSFERS + if (spiX != i->x || spiEndX < i->endX) + { + QUEUE_SET_WRITE_WINDOW_TASK(DISPLAY_SET_CURSOR_X, displayXOffset + i->x, displayXOffset + gpuFrameWidth - 1); + IN_SINGLE_THREADED_MODE_RUN_TASK(); + spiX = i->x; + spiEndX = gpuFrameWidth; + } +#else + if (spiEndX < i->endX) // Need to push the X end window? + { + // We are doing a single line span and need to increase the X window. If possible, + // peek ahead to cater to the next multiline span update if that will be compatible. + int nextEndX = gpuFrameWidth; + for(Span *j = i->next; j; j = j->next) + if (j->endY > j->y+1) + { + if (j->endX >= i->endX) nextEndX = j->endX; + break; + } + QUEUE_SET_WRITE_WINDOW_TASK(DISPLAY_SET_CURSOR_X, displayXOffset + i->x, displayXOffset + nextEndX - 1); + IN_SINGLE_THREADED_MODE_RUN_TASK(); + spiX = i->x; + spiEndX = nextEndX; + } + else +#ifndef DISPLAY_WRITE_PIXELS_CMD_DOES_NOT_RESET_WRITE_CURSOR + if (spiX != i->x) +#endif + { +#ifdef MUST_SEND_FULL_CURSOR_WINDOW + QUEUE_SET_WRITE_WINDOW_TASK(DISPLAY_SET_CURSOR_X, displayXOffset + i->x, displayXOffset + spiEndX - 1); +#else + QUEUE_MOVE_CURSOR_TASK(DISPLAY_SET_CURSOR_X, displayXOffset + i->x); +#endif + IN_SINGLE_THREADED_MODE_RUN_TASK(); + spiX = i->x; + } +#endif + } + + // Submit the span pixels + SPITask *task = AllocTask(i->size*SPI_BYTESPERPIXEL); + task->cmd = DISPLAY_WRITE_PIXELS; + + bytesTransferred += task->PayloadSize()+1; + uint16_t *scanline = framebuffer[0] + i->y * (gpuFramebufferScanlineStrideBytes>>1); + uint16_t *prevScanline = framebuffer[1] + i->y * (gpuFramebufferScanlineStrideBytes>>1); + +#ifdef OFFLOAD_PIXEL_COPY_TO_DMA_CPP + // If running a singlethreaded build without a separate SPI thread, we can offload the whole flow of the pixel data out to the code in the dma.cpp backend, + // which does the pixel task handoff out to DMA in inline assembly. This is done mainly to save an extra memcpy() when passing data off from GPU to SPI, + // since in singlethreaded mode, snapshotting GPU and sending data to SPI is done sequentially in this main loop. + // In multithreaded builds, this approach cannot be used, since after we snapshot a frame, we need to send it off to SPI thread to process, and make a copy + // anways to ensure it does not get overwritten. + task->fb = (uint8_t*)(scanline + i->x); + task->prevFb = (uint8_t*)(prevScanline + i->x); + task->width = i->endX - i->x; +#else + uint16_t *data = (uint16_t*)task->data; + for(int y = i->y; y < i->endY; ++y, scanline += gpuFramebufferScanlineStrideBytes>>1, prevScanline += gpuFramebufferScanlineStrideBytes>>1) + { + int endX = (y + 1 == i->endY) ? i->lastScanEndX : i->endX; + int x = i->x; +#ifdef DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2 + // Convert from R5G6B5 to R6X2G6X2B6X2 on the fly + while(x < endX) + { + uint16_t pixel = scanline[x++]; + uint16_t r = (pixel >> 8) & 0xF8; + uint16_t g = (pixel >> 3) & 0xFC; + uint16_t b = (pixel << 3) & 0xF8; + ((uint8_t*)data)[0] = r | (r >> 5); // On red and blue color channels, need to expand 5 bits to 6 bits. Do that by duplicating the highest bit as lowest bit. + ((uint8_t*)data)[1] = g; + ((uint8_t*)data)[2] = b | (b >> 5); + data = (uint16_t*)((uintptr_t)data + 3); + } +#else + while(x < endX && (x&1)) *data++ = __builtin_bswap16(scanline[x++]); + while(x < (endX&~1U)) + { + uint32_t u = *(uint32_t*)(scanline+x); + *(uint32_t*)data = ((u & 0xFF00FF00U) >> 8) | ((u & 0x00FF00FFU) << 8); + data += 2; + x += 2; + } + while(x < endX) *data++ = __builtin_bswap16(scanline[x++]); +#endif +#if !(defined(ALL_TASKS_SHOULD_DMA) && defined(UPDATE_FRAMES_WITHOUT_DIFFING)) // If not diffing, no need to maintain prev frame. + memcpy(prevScanline+i->x, scanline+i->x, (endX - i->x)*FRAMEBUFFER_BYTESPERPIXEL); +#endif + } +#endif + CommitTask(task); + IN_SINGLE_THREADED_MODE_RUN_TASK(); + } + +#ifdef KERNEL_MODULE_CLIENT + // Wake the kernel module up to run tasks. TODO: This might not be best placed here, we could pre-empt + // to start running tasks already half-way during task submission above. + if (spiTaskMemory->queueHead != spiTaskMemory->queueTail && !(spi->cs & BCM2835_SPI0_CS_TA)) + spi->cs |= BCM2835_SPI0_CS_TA; +#endif + + // Remember where in the command queue this frame ends, to keep track of the SPI thread's progress over it + if (bytesTransferred > 0) + { + prevFrameEnd = curFrameEnd; + curFrameEnd = spiTaskMemory->queueTail; + } + +#if defined(BACKLIGHT_CONTROL) && defined(TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY) + double percentageOfScreenChanged = (double)numChangedPixels/(DISPLAY_DRAWABLE_WIDTH*DISPLAY_DRAWABLE_HEIGHT); + bool displayIsActive = percentageOfScreenChanged > DISPLAY_CONSIDERED_INACTIVE_PERCENTAGE; + if (displayIsActive) + displayContentsLastChanged = tick(); + + bool keyboardIsActive = TimeSinceLastKeyboardPress() < TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY; + if (displayIsActive || keyboardIsActive) + { + if (displayOff) + { + TurnDisplayOn(); + displayOff = false; + } + } + else if (!displayOff && tick() - displayContentsLastChanged > TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY) + { + TurnDisplayOff(); + displayOff = true; + } +#endif + +#ifdef STATISTICS + if (bytesTransferred > 0) + { + if (frameTimeHistorySize < FRAME_HISTORY_MAX_SIZE) + { + frameTimeHistory[frameTimeHistorySize].interlaced = interlacedUpdate || prevFrameWasInterlacedUpdate; + frameTimeHistory[frameTimeHistorySize++].time = tick(); + } + AddFrameCompletionTimeMarker(); + } + statsBytesTransferred += bytesTransferred; +#endif + } + + DeinitGPU(); + DeinitSPI(); + CloseMailbox(); + CloseKeyboard(); + printf("Quit.\n"); +} diff --git a/usr/fbcp-ili9341/framerate_smoothness.jpg b/usr/fbcp-ili9341/framerate_smoothness.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f48c22cdb0c3dfcab5a4b481b2000f467c851d79 GIT binary patch literal 944250 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 z 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≺^1GXX40+5Strxs*U^L*A?QL%9f-dS90?kd6Vye&!d`sVGUJ|G0>|3 z2h14ysd$904OQAhd^6z7aw#s0PZKl-++>i}>Y!I$BfkB&#dejV)?W-V{yo@>Sn);1NYa+0N67gFmYeC0aHwsXf+tFgW~zjj^T8e`t)op~8d8kD zU`Q2u2KuW0lKU+usobOg0OgE!d}C(l>f|{&ABR4XF$J|S%dIWdY`t2F#5eDB#7#b` zi<37L&z9K&-$L~|Vgg-hT=dF+(+!Ss%ftgJ*hI=aJvapuoDQ*w`tjHNutr`5;rW{phSwS2@aAYc$(=|Uj0@@-wo-s`ps?bYhBhTCoRvXmIh4dOTg6? zU9Dc><$wYF0E3LT;%koH7EZB~GLC7bR%q?kBt)jla+VU+<#|vBLvEn~7<8ta-51%5 z-lsukj@)Z@lIxI|^P1`OTCG4WPM}nwyWGb=nwWKa$2W@k6)Hwet>)@PC9FQuJ2l!2 zaP(GOGy@_RE*e8trBwy8CGU;6W|L2-chem@wWpdKasp>n!*w;*U)M`hj$myc$zpa< z&sp2TZxic0FW}D+sP&pfVfgb3vb6T92#y4MxPVO>k4mPUDXBd6TjQq=8v1P#9ZsIK zcFsDhXQwfrcZ>q5b*@)WX$U+ye^6n!F>%xIfKqsi4lNrt$Ep=chFKYjm!LCe9bd=_ z7@=Hk@|PY=daOqz{n*D(l)QSF2X}3Y2x; zbo;@K+K1r>@tInyviq6wNydqJe7a;1K|=QYMYi|f6q{8Ih1H5SFb{+ecLT3bL)uxL zeUp>R<%si<_(VKhIZ9eWXJiwPawmoqPHFo@jT*JSq+E2$?$Wk|)B#KX0C|(nRR;oh z?lZQ}vKapW?<0O*@vY)>F3x^LeCHu~)102@t8Eav@vY2>3>7q$w;hw*n5*co33leN z_I*m{tOfm&(pZMd(Sx36ymOyEvRBo-NO8l8(P1@S;(XZjnxl;^O_t*|6k~$AC`cLw z6;M;FZLXcMZ?jbT%l7H>Qje^9N5`VNG^oAxvoZRlk`LX|FgS^ts(u{veRhMuz9>{` z8B%z}knEP#1Z2Dbs6-^9x6r*e8(+7U1Ye=lXe!CEQ$7HL{If0Eo*AIxXjD?z7|&1+ zJo-q(Qt@@-OEWu5ZmXWEQUU~^mlYS5Jg3@CBH}6l+=UkDbzip-G@6SE$+VxkL%Y#^ zC#vKrIPfI?a!B!~j#2Y=V9ObkhQaUzrXWXJytvOh=`yOMYHrAI-yKAKJ<|K{k4|fD zqeY}-t6#hxgB>&B?~wF-9O^>XsizgEv)9AM52kpM@nI%oGEa(`gIg#~iTYYLLWN>f zuqRdV*GHpVcQR3cgY+q(VdLqud4(eX8dzeU8Bvra^?Z*nVHFfjodI8Q_^t>xZ!KrM8 z^6<>cjpDP#Hcp7dNW4zWE&#GIkQQ$-riBp)qok1#Q7ntHrYBJJfrGo}9EbE-jZp0F7(3TNf)n7bx z7UBFmH8rRnki(R!db8h=P{w>?2RnG1@fDt`(o8dza)VChDlt!qP>|Gk%_`eKbt$N) zmDN`S_{(tn4M{@nr~&vz`YfmGhGEAv@nRSBXOyAkJo%mrHzRKTFnUz8^eu-{EOOmR z6S}UglfFB0YSlD5ZLv*Q00Gw?GN3qhk9$|@>Z6}A(f~8>h`uXlH>6Lc)t;b5C}R!y zREM96!@}4gD~OPwXlK9B?OYtekh*^E= z1bpXK8hfdrnJErwL{!kIo8HQn8+NwXvS@hKT3T?`tF|y0j$`0t>pdLOt9KL;YGNW96!eFXfe2*0*)RC0#ik+swEwi$a)Frx?aDBSV$$CJ8>s*J|#< zmg2bT^WJb=B=aJ_Q6>AW@dRobvw?AdThWdh&A+e%?h<40r;eFlhMW@PHbtw$lPYF% zgu^f%K|)3x0kZ2?I*|(Z+u6Q7Rl;k~wwY`%w{HFGk7%;(9zF&Lx|h;E%IOTJ9Ok+y z4^iaN@Xv{v z!+>%hsL;)q9jjByoc{o&vX6>4B@qooO%)K*+Y)_P==?WZq|n>+x^3f@FnVL*1nM|$ zoIfcJDj9lLr3tX%7o-ZFlnWe5LZIYhk1xS;gz!i)Cgcex zCCjLgkglXIp7^EK=A)6$PJIrY#tm&G9!bh@_=8$uy6lG$<$Vy`AScv<{>%RW3>PSM z9LdCGGF44jHDBIqc@$|wnT>Ra}}rlg_HPtHr*PCr!9?^cP! zl+$RfINixwWSVq^kuQ=eOYOmuRfi)pMHGf7vS@GM?Aa7pxq~TF-$8+zTWyKV`Z^Nm zWmJbs>bTuk+L*Rzb;+k!Q}u+R-J;Ui>ctqa=wzJDJ|1{(0yTCZw+va1h*1VAa*0E^ zlB?>ySmf3h%MqLt%3N!zvM^Zx09fM6c}9oB_G8y_+_j{n$3mS@l@XA*!;rrosD|OG zB3U-JIwuTg7V>O-V9PW#-}>J;#Nr1IcvF>Ik?=$cZFZLG{{U8~zSfx<3uJK{=ZfCy zzFt^=h_eS7V15wYI$CJ<4t_E^@E=HRf!!dYDGiEAR9U-Le*;NTW znA1;lRNE`TZkaGvqf4Z;ch$_8JZQ>Z9NW*3DpV@+<_IpvYFx8^D?sVYc~snO&~U|7 zF1IB`vMSrQIz{?(LaXWsA<4)GKYR;KbW!Xh51fv)e3zESbh^zdJQz~q$_J_Zg^DWP zh14XP-P8svWx8&Qk1h2L#ekF#UhDOZ_;DCsWjQZzrX3l^GNzt zDwZPk>UvH`sMC{BRqj8Sn_lq4lk$%hIE9%j^=L*8(@83^BE&`;galF-Q!X<2l5%%V zBi_lr4PT(sYIP$UO8dDEv6}9;PqkAf-?bi-vK)3xh#9B`m*}llDm2ERxY$?}Q(6;Z zA)rtY(@Kh>zkxc>me#kzcE{(Mbj46fcwo0=2)xFaEBTl&bi#M^jy?6W&ydjP{K&3$EDm!3Ftl3;Uqox-|k%!n0cBi5(I>kR=BaH!jVK!gO>6+PjgX?J$s1#-=rpyvcexLy0aaYrvpt<#*P zKHO1``L^VFN=Qw;w(6EkS$4gbe02RDf~`^AZL33hb26m%-$$^4=HxgQ+dNS4`^5-) zoP!plnj`Xz0Gw8=z?k%aqI{IUY%{CV>FT(OTX#ODS~U8hXX}+$&Uw`021AjT^2I8& zwI4`oe3=a+dQ3E{2BWL1=UeKeK2w{Bc`Ordu6w1c!tL%=$~q7CBOWMp!RdFrzZyY1WocJZ4T`2>WNKTJUC=OlO0R9d{k)@ zsOp=RBw)q27@Vy2mxOLO)+pzsiYY&Fzs2o=)$Q>-YZ>?ozg!;98qsfQjPJx6Cb zQHrZaa}s62V#+hXS@!){46ZERPOQ!8Kf z@d&nlsUPz<{ZZkXN>>!^(v(FVc9hdprX@1=D+6l+vNt89jN-K2VOl!ku2hqFQ z#_Ww>vTBQpWrC%Bq}o{c27mgeOl}&$=e4f`-rt-8N~h-U5*gzz( zH7=BHLsLlVCcMWT>G-={63V;ni`IuvX7FowZ1l-y{$#GXW<_VGeuF6ajA8R@V_Q(rHX3ar#>>vZ8}8-Eo*Iz@l7p-v2~1&KFK5b z5i8s?htyHF^g`_C!CtMq(c`?r;0oGwTognDJ3 zJZ22n%@#N@z<6ZRsuIef@=Mumi^?NUX^lh&gJ9 zmGkWq7Yvz9&c2U3D#VVA(WEg5Tt=Ri2^UhTDJ{r}E>_z3?wT~>I!!f}Z*IinksSX3 zmL(3&E}F|#S>HYk4=_hBx<>l%9J56bNnPPz1*N#rLxaJ6P=0N(~g^@ zU0s9dX|2EI0s((Sn!NVBM)fDj*ZM3FQFyh)stj6oTZfZ)T~SJGW?_V&p@gR-qiBMT zI^iNKhF9t?>c3tX)m?2*i;;8hP-U|3LZ483RMj~dCzB}a&&5n2R=DBD45lqRJ0$Sp zKC5gQZM0ERO+q#;JC*~{sb;eRy2re#z+c!CVae1u__E{w0PT(%$B0TUOX38&j|(W2 z*Xh}koem7i8Iq2{w9L?P!g!;$#(-_L*QHZ?+RNE7>w7dBI&`Yuu$CP1$1s1C2}c9e zC~Y@+K=!(M4={e{Vwd70#4Rt;hCH4h8oahagO?j|Q47{m)QNA-$B8vUwz10T(?9U2 z{$S4QN1~P`BeT|%Im% zBIe2*R8rKOx)gP7NmJHEHPoqZJa8>$lV+ijC{`f!!jI;rbPYa-Rc?1{8FA(m{{TpF z{{Rc@(Vwy|W6Qi(&TQ0v9;Z7Fl*9-u)51INj)XZRjgb>*g{!4eZ`%0uXQR9cEY#O! z+J&S6(Bq%T2;QqtZA*^Ox$q!C?oIKB;*lwdO3V53mrtb8KgE%fHe7B)Zwml`*&>oD zY9t-*slR+zeIsos)NHD}caB+px4)ia{69f`p4OzFb^-oEW6SZCfyHT^BG5rLv*`v1`g}|@EJ@`qNd`<8dG1n+?c!wt| z)oW8e5UW8-1Zsh~Ao_*DCs9!aM6c7OH|>kV==BJLZDaxf$UX}yiCtORw_&_SCc^SQ zW%1FUs}(4)xU*I!;IfXm<9TA53W%knu_9mFwfkbYx;w${2M6B9Zghgh$<{V}fXDKX zn~EH8@#(^P9d9?5d3vcxfh1|KJ2IICg>C0cNT{|bwp*ut?T*XB9rU*msiEvrI&LOV zZs3gLdg>gXi9Ejfr4{k@;@)$luJI04{%S{zf}gO;CLX-n8i}{0+(C#?Ydt0u-C)&H>m#rc-%a4 zdP>jscSlLfCUMg_Kg{xgDLyoOS3Px3Ce=xGd{`4qwpRS>HkaG!#dgnItaq%(!dwTV z`fECFZ~2?^iuB(W-YTA*8LFogYf$63h@|5@rw>Z^u<0JGR?eeU&uy7L^DIf|)|qGYw2?z`H$xS6)zZG zBQsQbR64$WtGn=ROlQZCPkehXh$wRa&~;o;l@S$oMcW;ool35psp@{b=jVclvn9{o zPv<0@e-oZ1rK%KuGiKger%@E~3x0}U90JOmu|0pylljiTG;2Zt9G|~2I!}rZ63iu& zj5*7xH6r?AsPD2R?}00!W6i7S??0TH)E^5!7!Aw3cJU#XXu$%7#LUkQod|Tb9jWdM zZK0O3u!^dB%Br^Sd*EYm{T1Aroc!_lN2}B0rG$O(;UC0z9ON+Izs4NyE{jN^YO08- z-9I|&n2vZ3k$<}<aspPjxOUJs-n-4o?1 zHfd0t=0^&bh_4YW$_D=cr2N$AuIRrBJZPVOC5{cDJ#>nG0#}zorZ4ORCZdM-tIP5m&D46PTH?_KMz11&lcJ3eO-jSFT+g5X&^8S;aYBZrN zY-w}T7#(@|z-s3{CrK1-obQ??gMH9yFA^Y*!YZ0}L`1eYuA@a&H*HXu^Tg<%*`60? zA*CN78x+d_02cEWWQ9n9n6m@!N|X#MX(hvPb*d$iJ*um0SZm>^$Gd`HxAa4X4!ULe z2(Ox1;wK98m3o(3s^*G&gFOw{?#XgH#ELq3k9SRIh249mE{8^jgNA+I<`|8CXY@G3 z>6Mj7PzOnkA2wE}I+BMqRn|LT*^_HgcbckJ72ezKo?ceP0-Y&*hYj}(%|Ele6)=5G za@{+l@`qkNW#2=l(X;OjX_>B%lwKInoS#sT>!R&Ub@LIo1k1V($epchc1Gc%l~g5| zy5)vCNJoa~J59c>fiu$rYl@4Xvqz=}r&g*?HKyFLmhdm_eHfq(4R(XRu*4i~Fr9oK zg9|Wp_#Qz-*#20Zz#69uvm{K_MXXdajEO823Te!eK^deG<_QRr2`Lr!A=y7jE&RP<+ZnFVP9UVQ85o&QQn;g!J}4?^;&xT`XKNJ!`y(co3;1cmoYz{J zA2rmY(BO?aQ_?tkoHibH#$8|g$7wD=?5GFxM^RL%27;4N?y*6 z-#9t+bRXI^N zH%pTqlLAaZe7R9yX+RV{ge_lwARQh50BC&V;ig}<(MG+Qa-73;mNJD78gmg-lNnJ{ z>o*G-8XLaf{;86TJS6bpTy7M43*}PFbXOkRNlJvnsEL1^>!3JCLvZ^40Q#i$$ncUg zh!1d%lOid`%ej4|KolWnmk8G7ZS;%SkNP#f-~OpAYpfspN6gHXXM2asL4L$XS`|94n*dT1)iUbcumwamLCtM@31qLgkV$ zzIIfxcT6hyePY3fC4Mt6uekI<@`UlsIS+{0nigemEoHi6FEPtnbvh#rGKkQlYHHkt zRMbVf?Z1{Tdg?SCmb@34QoH-StL~T%hZ_qp5-gisZd)$UBx~#>b?B2 z&X-27^?w*c)@?ou@{&I-*LZI)EW4FlXD_6Avl2i{bYQnEO8P~ie1MTJe^pZ!1>y9s zRUbGB?zhZGEBOZ@QzJjjei#5aib}7-TOj`c@-{hjntILM@N*-2&aL{97+IpDN1^4~ z!<0BQxo$Td6}46&$oWVrx?7GuSMRnB*G&P&^*E9-Y3jl;X@c~u{gna*C7QSOsInf7 zON7IZxy(zGEsrb_Rc~!7md8WU>2ycAVQi1H&J1ea)!Z*1^G(WC@{4)9gL$Qrq5KIU zy0SD8YOq?2=%+1Il@XRtZ!4nO{qfWnM65$rwh%gGKvmY{;I(JqXN74B`)+6=UXPt3 zvCUIr#crtEG9hzfvJAFu!fTYJq+29IxZh<{p&d zi@Z}uzYutF4m5*;<#P-h9s4hlsum>G_ha zQE};&3Qb4S#1+v(SnjJLM2+cht4;PydLvn=uTe{>q_C)k<}4sQky#IgggIvf|lYVE`UdjcttNnE1>> z*=1U5V!ceddhPRzs|?ef#$nr#k;|2R`mxY9iCiWpVoZfG@E$2}OHLGX65YD7nVd_1 zZZR5_UwkN~SW!%j7>Zc)z`+Gs?1y?q3sULo(qB$FZmV+Lxm2<8S$m~XYRRj$_etRix;|UVt4w}lGZnUpN%ogc ztzC;#jNhd__+{?xYa8vgnU8c6nIfudtD=TO<>T;-41?l3FmS#tevy}9L3As$@u!>e zVz({OWR$fdDq3{7n%94$*qHRU2-I-eSv_?*E(tQPs;1M*rwHfS&-IMzhH@+Mk7koK-v=8P9V~uf#(%isl8G?AukxN*e+m^7t@g6k^*(R%y&IDQK4nxS_HQr;! zBczvCK!%dl^Kb3I%_G~TT-Re3J#hqU6kIkcD_8D=ei!9DtD5r^rzVqprbI+lMe^6D zr8aFnUY}KQBT&g}V$H$6&@rmkuU9S?4m{+E&C%rL{Ifcr9%2kPjrJN=)zq;cVjf~@ z_u{vwXBO>S^YH5&vb23R=e-%e%w5Pivo6rGJaz`BX9WZawDgeb^?iLd>R-PM++2;1 zTQ=@{iI5t^tcAj-`9y_WK&nyd)vZyOZDpgH5Y5MlbrSm5JZ(}8X0q9CQQ~vo1OXm$ zKOFLVWR6c=gmoaf_TpPJTh`nt@Rw!g?nTRtdojtw{K=DObw{14HagsF&7wkh6PQKR zq^*{(`*EW+Y&(`6!^T$XYN=Pahj3>%Z4cG-RBjg)$0nnU0-ha zjoG<;BV|WIJYf#h16vkW%$%<0YPW{it!7>wR>~zwSV*rr+;F*sg6l&^P1N4qkZy{I zsJBdXP8X`8i;HULX6b?8aXH5jrrk+!mWt$fq45csnXA()5*5;AzGG&b=WOBbs-GG* zQd{ruTxqS>Q?0Wsh=B9}M!0^Sz8{fTYZbgq>o{>Ln*vjn+6OK@Ww8;BIZ@tds$7u~ zU38Hx`YM>u53f+ScTaeGFtw~1jaMSv_UN?kHsup|=5+uiq%XL06bI{htMf(0r^ zfbotRS%np%2c1>ADkCaFgR8ow(*$^iqeo$&?%Fo;CNWA{*xaWc>8EVT;lDRg zsq$yL3R7s?x{xw4(6wqnHqmwYS-};-TJ7#~ zToK@4s}*YIIeX*cLzMWLd8p1qeW?p#CkfTE=|%NKgKxJ2L991Eo^w*~oDS)c%2jfp z+k(irNFs_hK~Lk~7Zev(H~UrlrB=%=4T5(V_GYT&8f0-tH7@F;tGe}KEt#>ihad4A z$EdaGUP=b&K5i@ZCl&i{y0uw;{8^UQBMPd15%6gyLTy*s5Xaf&!2RWPdu`sxNjdYh=o;E!`VMK6wyIbhi+29EX8f!&%QS@{E7@L z&goQ?d1a+dSDUx}RxM1xxv-}E^u({QaayvT;p+v}s)I15K2)DKyIJo06 z*O+Umc0%du-_^z1&e4|}2w~yjDoSm~XH^V`$1^K1IWS(*g4<)GQm87}i{}>pwgFPi zTfTQN`mn9U)}RH!@x*8~6{Bq&Uzxt?d*WT88M{2~K2jBXcK0i2_{-G}Ns}*XUs~7e zPu1LU63Y1s$lLFc#hQjV<{@4Ag4}Q?8xrN+MMy&F_u*6vDXB+zc*A41tJ+f#GQMJi z9u)SSXdE|@L={^DQ7vA2mlBq@Zby+5e%i+zl)%M9(&S7Q7)?gwx(818Qt9c$lwga< zEONx{jzSn?pF_+PSO*rN6~<&@l40ZflA#X^u`@p`{G zZHqHnMwv2{l!^mCRe2>d3Ck7OTTyP~r8NHlngJiP4^}pNQeN`ET2+(su5yu28q8>u79l)s z8{o+hA`h+9BZDn&c`RUM{N}#^DUvr!VF9 zX)xqLsl<{_SkxI;h?*<>t!;$K{bE@qXWO?EX*vOKf_hOX$xDpaW%W&DT4W4u2M& zc-Q(>>da7S1)fJZg66ysJX%%E(j#*1@I^sw_4MM$`VWHuRB3bZb^idWR!625S_bV0 zKRwf7{0ZP2d>i~>oAAm^Ns!x&TA@gWy(Wf=CiAE&zU1=9HP>)G6?G9!TU!~(e4oIX ze9-as)?TR8ioN;FjuiuM`Z?lzO7nmG8O|gXBtj)H3#hL$-AT3VzfL|^>l?N|eD#UC z;Z=V_$)q>T96g=JP8Q?{^a_;~hbYu^YD!e9P^qe}sV(%QvW-m=-Sme3SmuxPCq8{= zigfzJqt|Mk(2=;~0H4YZ@*e~yaIcA(R$gzbQC_FanCx^~EmkE>@iA#kNSkQ(ZC2OS zZ?^=ixPmd6-fH3rX~k&y_l!;Z_>PRst`p1#Nl88rB^#@Lsx{MbR|~&;TOFeNF{hn6 zx@>XYR+@XSaa)JkByra&Gs9VxDOATPb%RExD>|c( zD&wW3RVMqYb)sL(9a_#GUY@~=a^5F1tnj|qQtm}9yKouv#65U_r^l0-c$)j8q2QHB zD=Td$$s|?k)QE}hTo7Hzp49YfXxQJ)T6sz0_#kmVG>+OvvopyPZff}t^4k@pZSHc= z#np=6*=Zd?R>!}WWW|scdoq=l9%fgF{{SN_^-WxP5F_j*9p^9N*i5_=AkH&ZK$2r9X}XH$224-#sT(A+^hrtADQ*Z7|HeY7S&_R4d}bL*W5EHYn=?p08JH;?M-Gbe9n}@>}h;Hg2)0K?{S4E7B>I>aL{v@g^x<`hJWk zry8+57WQHz49Tg=DpvYupXiVJxM4;nY&kKRZ))MG23*35Qmbqzr+86L@S>gJMJc_o zqMS{O%L*w$C!Q2jvcig8>DB$X*mau@k=aRjnyE%1@_0XrV@s43glX>_P0(e$`AVeL zrj+K*!X<9V*oNObP>>g^jyBX*SCJE>^0Xc346&TJl@?$~VjwTa2?7J4-N)y8tq+=G zI(l3lPNHU-*0OeN9}yEW?+@xya?(|~5(v7DR2n1!&^BG*{+g}a#M6h|KnBGAhsiY+kCQ^ew%oadKOe4Qu()9mkutiUis8bJ2cNaLBa zPGF$sXskUdQBxVQ40Cx8+Ubtl!}U691GTkpsB{7c)@kaxgs-*O(Yu-=%7-(aGTnHc zReanc>Ng$u%|tqv%~#J9o-eLlef^@>w|7m@?vGFEXtbs3#KY|Zp~NP5e=#F6(^R>U z++oK8W{c}Z)Fd3wTk6LlW3yoljQQ>WIs9eP%IdW@ZrZ#8IWtsWCG+GMYC?*{`_?PWty7;n-H!*-hR;X5|gH`s;u3+di|dnB(v0r43pDg z#ATO>M1)%-vV5I7iSqrG9CP{^5Oc;Qvc^>yWl;W75pe$iiM3i2^%6ExOHa1g$JVYd zD^2c=pqTpCRo@+Q{xPg=KV!?XG6L41ZfX;sLx|nX8S-{$lrfqkWDRtZ8JLLbw^f}o zzBys72eO5Sn2(xO4gn$?vj$1{4=lixGKZe<3890{kuU0r;lRv!R$o3#$`ZFrNl-~v z_{402If|i}z$q=k^q}1qOo3;pepSiP>cIOS={}iRj2g>gCc%K-QAdeYOwm|;8mcoC zR7D8f2Q`|iuAf*;g+~#UsqK5nz(+eP`#fEMJmjIu@N(TJhw$Kh9RRyPM86(Di5%5+ z;fC{qZhn6=S5L{>__GV@FHXn8`A7@vC<84){?EQe7qf**pPPVSLJ3^7C2f}(N5MXC zK(EREczLT&T4rEbebDJ`LN36njKjU|jhz1gRnHZ=#2SS{hU6w=Fs&H16xajQUjG2+ z^kDbtLQitn2gy$Xine$}JXz8L`@Y|VUuW6x5g1^MVfPzN;CD@ z^+2pjbdEtfQyVKfI#MD8odsYA0T(UWW9+qiyR!N zl}|0z8IZ|C4@!=)-+9+T6$w*PvVvQpT^DRuH2hOgmTla&4}_6sogKF*0bqg#U*i{v zChC)j9j8%Vl;e^FDe6J#2#S59HkwMybWdgoU#QiaGgW6Y$*0*t+|~?vNDIXd1;gR| zHe>)g={DjDxoH90=P7_7{{Y7v#;BdaXSpw)#vR07mJLFLdhIu==CZ z-jP0me!P!Uo0U+U5tvVmR}#pl=Wm^RV|>4gnDX{;{{UUena3^CVzn`-_jWosIwXmb zkLZDWa8|ef03n46*NGe;GZbc*q??3YT{lku0B#;~;jp#=E19axdzFzh1et+Si!Gm! z;;LPIzT8Q%imqLYd?uTATg`})1{F-+Z=5=mbXiot`aDp(B@c!?;nl+ZV;eDZrCToM zDAVaOeHvt97h8G0k`rlA#FcNlqM|Bepm5!lU6$q`J2y8+G2O&oBxb%PSEc4W%T)M6 zqdCM^T|4V>RS*SKQ`JF4MEVmKt}Vq5sg|Un5f`9QfFt@{IiO>-XD>0bmk)D%+8m0w zlTqU!l8U@a(l{aO3u;Nf+m3stv8#QldZGUSG%6_>-DW^Yjabc`KyNCslxA0_J(t;& z>8;bz%~3(~MfkxE$g6vMcU*T1IK`ruq3BK44(-?(#HClmscS{W9bfF`2i|4@Gz7tE zvwQ1Q-yUyz)1YSZFYkxhoY|eBaR`(en{v5rAqbEMQi!6Wes#-y5Np_iMM}%~!mCJe z$qpt>YI|_wk#sABT{{Bb6)Nc4XK3omzFrZ<3a64B%T4B~lPCcJ!-z54bC{**2w)$bQj&QIA-9MCnKz z@pZ>bbrkb2s{_+D%$6T)NpB;CwJf8T<2^ol!ILCJ+m1}QB;XQkT7`7|xI*gN?R?~( z@cQB~XfbFsX#+BjGnUky8x6&Xq5FxngC^o$J z{hwYoT9f?o!D2KtX89Q;Sym~v2F1oj2&~+YQys7Cm9ULT{&?Fm$j?;bW3EnNxemDg zkQUIcW1vSHb~JyUIk}J4SXQlPdfdFKBo)aZ*p`Hkt5~XgZbi4*jCNFio@w9vO9}il zi<$*M$`iKf->}~U zLfk)O(gL=e4zXJ!@P{(-J2=V9*=C~BzY(LTuQo$$sI?nUsANcrXsg=y#nPP)qTkt> zNz`g6Ul{n$L7Jh#c_mjQNV@f*%@f&s>@F4rvbA>R)#oSIYClGnIA_L6E=YYORp?Ob zO*ZAuB=(8sT~A?M)Jqr9wmN4IG}~boE(e^i>L{?Bhcj%f!^_!!hiOx)(;(4hKVEjN zPO4?**(tF?K&!1rZS8uwK${{eSuxs{y)6yeS5Qz-jODB?&fFV55>jyYFi6cDE3dlk zQoB$|RZ%CU)<6~QO49ZnK#D4he%3y0aa=Fijc|rdG_!;o!Rdr_Cp@03lI)52>u&)Z?sy2=XN5`~3^vXMbvaLK8ePl;|M zPp=nEE}?FG3Y$M`#&+#4pxE0|pSX!Ayi-o4Wz6A`YZBwxxHTv*xF(GVn748}tBj~y zWWB|Hg~f-7P~Dki$ZT|mHTAEm7EsJvmhsYRt220xst*w-wE-wDW%8@7li+G$IB`|Y zNL=qlMbx8yr5(MP;>)2nRvp6^^2wY^oh71z2J*ytoMvnXh3)04tS%_d%VhD=hNlS` zF?3&Tb+W#(dOK>Pd-f5xza5i@Qk5lPnZ9!A!cDbThFt++w(U2PLU zswIK)?!2-~Z+_{E{q@ukrye&M83N&nJM{}y}gR5i+yZA^od@pet!9)FBO1a z(sDRmT*_=^zW&e7#Wz|;>1y4HtaSAk6d9zmg%om9`f5>$b{=AH_2Gv0Op{-{ zmgQz?P66t;HP!kffi-oOjYss6ko{a8l^JG&$$<*kGRD|5v8_xN>`Q$+T~mA&+8#y765~>3R2)Kb)=zc>xeM`=knfi& zKh@hyY*)rB1?KJoMvK!W$Y=%ENQ76V6?RNnyD+k)xXS|J3R?dFb|i+8;zFhW0EQz> zOL$REu%wCJ6wIT~3PznK#f22RYhg`gyDH&FahXo6DWtiD6wez8doas%lTvIShR|8B zIZuxz^JS2*>K!Tj#fnv{%*(ZWz?&V-oG-|+;lA@TWgG1?dvlvnUB5JMimEXXs(?(6 zTrcbC(~RGU5b`yh&xY zrCS4K?(@YslbFqRZ5+ge*@_$-pPidnY!9P@+SCb2)m=XKL*;!KoTrpb#m^xR`LjNb zXcBS8n-Lb#cF-yFf6cHsg1nE*BQj4m zjSA&XMNVQE8tWY=d-nazXdzO&;W_>)Np1@*$P?!2AtLEfUz74$!6aE*wRXgw6w~N+ z%)u%}b)k^kf+!l5(Oc^Fw4UFcjfc8TLFWj3S;_fLiffM2X~P}xc~vY@I>*-P=JexU zo-$i<5s#F3gIK5Kf~2@lD3K`|Bf3#k$4|}ne4FE5Mm8%61};4%%7Dya3siRmfRwD4 z73m=_s}BxSU4fyCGjR%|o1Jo0=ihPALPBtzBD(B0^@qrOupDxcak4hD&ULC~NbZ2S zA!E69L2ct37oVtjcdS6}gPO)*Jl$GpA2|x%q*X;DB+@ItQI_M23oa%HGd6uui^G`| zSiqE6q^TT;$yq&DxBmbYU|0rAVh4oPjRw6lDQ07Sno10!EK05G9w_B z43S9;{{Us*;+WM$gJbR!aSvvQWk-P+iMKU23Y^6rUs79j=lAjyRKpe-UF^(aa7=RL zABoj%%pFgJ-tu1vojGDpJdqOMm=ZcwbBF&DGlbI}C z<#HKp!9_b=Rl>LTwhP{rtbt8#=h~Xv;7r#kwWp-ajVF^R$CBuPh>9nzsGLzvIHYwl z!Rq!Z`%-4sIAui597d&8bur6L0PAExib$74T_6S|TlHTV?DH{Ij)&S4AB%h}%Cc#5 zgjJS_p)_s9HkeI9E2mKdY194o!c^>|y{7*FZ@oP4Qef6H>-q=R~SeCK^d>hvy=Vy=)s*mD9+@NWkTCu^EEWs;U9>C)tNc$0*=9Gi$k$ zb1c&-6iQnu973EZ;VFa4ZVmNmB4<#qy7+%-i#eL=t5F_$K_Ik%>tk)#zwYB3OnG2R zM5h#e6vasIvLgB70Ae9FRy?x^^s${sjwJJM2;FUUwe=>X^1w?RnXhExDb*+yDO9tn zXfZ^7!Kpi;dExp_42;zv8G;g>$!wW+{LMpucAOWnGX?gTn=s*aXL}^%+N-gpI@{F- z#0Xn5ZEVuqSNP$;GbStTfxN`8RfS~&^3q16BvRC?tMt0DuV?O#oAV;=S~*h)bfI+( zy_nmx#D+GsQK3+3)mcRRaV-d!B0{ykRtCR}A=!ZlkmF9SNl4DPLmf{^5|z|`tKuq* zNhr_~^jQ=)$yHSw=BN(${{U5SU{=HhY$)V&W=3O=G1G8HGs5@MpuEKOm-u2!Heiqp zoq5YO$j;Szk*T?%#}!%TI7_5`Z0>mpi&iphQL`Z%yoePugODIj4|bA*hzl>&LjqcobDH3v7}aUPp4Ha42&gjTrD z@iCamby?Kc=2RPSTXC}G8n)mEGTz-5`|ugAE@1_w8|w%(hUDzH^K3fik#;$%6~3Li zhZ_dpD~zQixZy2wlb7iZ%XO!{DdG5~O%`2OA5_5gcgDnG8>P&WG&!+p&$lx$M=dTm zq{0=WqJEa93`l;ALolCdvP0bEONRAxRWZiVIh@5t%!v?u{ZJp_iAva+4ZaB*k3P9H z;G?aOi@HYl?d9cys`!JNkYtaEO3#l!Mjj^bV2dn1l(}dSXy8)P=nKCqr ze1~Tmt1X*pVLetwFP+jj9<5q;T2FCd5Ten~U&qp5y1L^EqlPNpRk$rgO{rLM`O$W0> z+8<r=&<3P41qA*!>L0PyY8@5H$H%-!}gMs(CHAji;KvA&(}_ zc)d9SHj6cVNZ0~hH}#ukwO^w6r0eP!OxR9Oi6{R6<}=k^iE1yiT!EW%p1GR5sJP?Y zJ>rP!6uxtkq=KZPicK~>h`)+o9|LujH9DQi&V8>^Ev-v+5)QpHggiIlhE1&1IAKDr zzgvQ?6VFPW6~Q)7K@lS|OiJtQ5&AL0?(OWno#X@IJj+I|%}%cRa>Hw5B2^nLWmB%? z9OFQt!=lHk)SX}>Fixvs$xX|c{F60X-?|UF_&K9{H;j|_$a*bx=T!AJd!Qft3S zb8bEe-f5mZMnxUI38*J^3tgpN;;H;`hj1j-r!&wuhZy4{F>#5(?9$mTrU~~hEEU>E&IMXQyPVV~7oL#k3TP>2c>`Uk zASy3fs5n;Dzvp+vH?hidmg3nHQKDBYQ3p2XAxgDl5@uxxE8hw>6v3 zZ`#E#>&uI;bV$J9sJK^LTzn-Ua%qQs*S$`*5O{wRDg6;mzE!8wZ?tL6i~x zEWK4kxH%#hb~zmldafth8fsA-zSHX+#W^xbi}W_h?(SjDPO2a8Dh zxGhy!l>4pS8G`T)*G{YZe6e!Q1g@;dZ+_TIHg1z4zsoiHN&Ik{U`bn^iISngUX^oE zTHdw4-N!%E^_@QQJzhi=^_T9&(sFUqQHMmqj_OX%ALw8;lHI40297P2IlVU2qu<+# zb)1{;g=_X>aw{#SW^-4N>P0U7uyg7NH|xhmQmizcB5kP=76zqzp_j94Z4Pd2Q9rAe zp55?U)k%W=YY>AG_UFS_bS;arE-U7~&7tm0BukPUr-(<$t$bh8ytAL&0-1;E?}>yF z22Kjv{W#9-MKT9%@ar~WmxOw~m`d1+WwhZ(aV{&UwnbFLt=NuZGMcucn7c0Gi@$Zi z^4p>-h}pwYxk@d*tSF@zQBD>VQsxv=qEA-}DQE7&ig2)^oqEfK6uX5KqfVm4rHU@Y zBNgEBtKP$8SZA35_y1m5q@`3bmNWObJBGUvCYL##kq9V zNHL-``5>73J1qiQ8^&46X1UGMv?J)tk)k%`Q zIwO3PXq&onuX5b9^bQ*~1d~*e9TKaR3c;|_MMtD*v1nvS$gR`Ur}KVJ8z(X-Y>1st ztXHyoD2}!~yAmLiJE5Pr!w!YaZV&16rB$;O2~!x-4M`J0L=Yv>`nqu}rzxgwbIj&! z`nR4aZcxopwwdJ(gv=TuQa_p^&Hn&v0lPDqgKF2+Nt(;1$f;6mGNwgnTx^_0LL}9< z=$IF)^kAA|KBcqLK3=F)GaRx-(&LV(rS$2!{)h%7F_O;X6i#+$%W-}Wmf*J0H>a(? zR8PomIkncVIJISS1Z|?u;8IC zp&g9WgWL2DH$WCbZrPenZWiZe^1TtL2Chd}4aHLebEHev^#}RjCEUzbrL4G-yNJ^Z zGu9h8t}D*8=Cv(HzK_m5KI~?`Q+2O-mR-y>qK+}9KCU2(x=r2a%kd)1o#6_?<#CPE=0HX^Q<`}icOG`RtaygjN+pk`vJNooD2^ZhE zm??I_5=5`103LE*=dLAE>(tjH>XprKZi2kR)A_obe7}YSg~5qQCP8XDwS2VRfqa^5 zl+}4|FIN8mrGguw%Lyt3cEXDGVw|Wl8%D%6{9y>)e^`sF0?C`9&sb%pmSvd~=y8yF zqAO!lUWWC2?OiEi!>Z9TA>?r*wqnaQP99Ya*Jm>FBb>(^WzKGkTH2I!^>KI}O%QGXAandA$GYka=?sT=U zMeLW*YAps-KH13(m6?Qkn)~c zrqwG?X^0+>%9)GYl<2-YMo1~ zPB%hk-H61C^(Zp3^q-CDY_`3>o(UFdU9z>zJ#c!f7MqzCt03GGhTk!T71FxJe@72( z!w5REaU?!ru9j-6&zCLt5!Xn}9zLZ+FK~$B$7iz#ftHa%p-v~G1EyU=bt3aDRZBON zJgpkJKPuL^ftg^@AT`aEA~{B;$?rU23K@xg2><#iet>OqP^1h zPS_r)wh0Y3saDUV^$rapE3y_FALdQN<&Ev?hcew*u&L!8W)eA9BGcqbaanc62N@fI zj-FBcts}1y3uZ%Zk}OmjIP#U2$h7GsOL_bI;1ev}RLNug57(%=a+kbOYPfmE5=4tMY=@Qgl><_WY@P@&v7BasI=4NWc)ZnSYX}HZe>boGE z5Yo~q5^4}HECk$S;bl@g=E@9OdxZ2yTP-9=h$>xwo!c3u^BvS}$0*p!GaUGGJePn> zT60#LCsqvDxe~csFg&KnXt{x!mT0F+emIjcP*T$m~Jwn={TA$y~I~a;OgAM0)04HvieSD%(Xf_3og3j z&Bu-eEZq{qy0vZv#aS8dYiZ|Am3T(gqs?YCH(Qvgj~{bl#zy*BFPi)^T@kyRHn=MH#lMUPOTwBu2*m~lPxw^xYv<4!@?Zt{Uh)%G1fU{7^2o%gt1Ob zkLzAWy+}l8yI$RuG3&kxQTUZ0E(SWvHSWfP+H;NN%W{UI{FSGuJn)Y&ktC85C6zYx zJ0-2<-ycOiYq}SDl^r|F{{US1CB*nu)?9a9u}x_6gi_Is7i)CM6#6%Yn2I$3{bl*D z{Zo{FgA52atWwVG%#Xpk!X~!N+ABMRaRAyX3NvTT`eMH3xc8?)ixZlgm9HASvUDL_+Xmu|~ zYTC<59vk^dHNuRONyxl$sZ*m$h~q9(Y0~~JV<;g#av>i_bwq7`%D497-=w=IZ0;N< z>611oY#yimVi%6l0j1E$92F%-y;VzgFJUe_ZT%;ETE^b9%t-p_@7~z0Rn`C~Gd&G> zM=0yT%=+0QDqjl2RVOzg9$Naky|@T_xL+c+MNcL=YcAGgmo3+iC%9>ATGk= zpF68{MaM(CM7@YU?8a-dzSz$fPmfaD&34-r#Lw802tMhG(l4Y1``mFjp+8bUApZcC zdd93d7yJ+CCg}*OWk!X&ieCKtC&>PIEQBAFgHEHLF*GIOgkK&aG>(v|Eix+f4x1*O zwS8CzsjOyM-o$yWd{JQO%qXLZltu8AfBI0jyL?2m*)W28VjOehTI*8`f6^_}720K= zQaiFbkm*cxDM>PvT{vD532&=czXGNwLb`CGgo=E|NCZf`Qbe%qQxp_qL1cQ7e3d-$4+V^y-9ZLZC3;haUSGo(T2m62a|f8hqK(?$U$+Fd ziCUQYe>)l4B8m4~{rG_twS^S#3Q3)PKXw#TqWL&dG_U1(_ri*E*20>~aHEs0CHLV? zXLwOd{zF(60ewX9cBboFZ+W0~IM98SfhtQEj$w`=^gY8 zp9JB{sZ^g}oN;ft2H!hRG;jQ|8HpT(H&)f_BZ$RjMSe)M1ITPqQrbx^f0dyuSj^V4 zu6j+5NXq$YxgEItwp(9D6u9ylEBx(1(PB7bBwb=x7!^#bOW~z7nU-+s9+)Ix^8zQx z-$t46fhetC6E!!js)$pZ4Ixxdxf=Y@?2xzH)(8Rsi5$ua0!MXWfhffIq00zn_ z0$&*MH~`Y97s(D*tv-G6n%L$~Wdp)o$+>*9gw^M(+>v!vbOBn!`iG5ed`QTcm0MlpN=I%z*j3GP6*WVv*e$1ey&Kx@zh9 zf%`Z%wal+5xtC)F6l2e*!Iv?yWROFf$W;Ap1*-|H%sICM#xkFrmCCec>FhedxwVx^ z#Y8TfYQ(f0rDepG)tVhAE#>Io>kk>0tt;{4Y*&tREM3sDIOQ0U7GqPLM@hEd)<`U09R47FuTAA?9Xe zdLxfiR7Fq$4Rx9hl=)g-AATI$nB9s57v`d`RVoilqt=DDAjTvE2bHs3H!tt!@5 z9HEl9JF%_Dw;_!~G-gg9Bo?Ytb-xv|6E|cTDX6bjrPri>gv5)T9ye8Wq4tc~eFHM( zgURsdAr6?#rdm}uNZr)oFH$NmG(~OYz9J4%>dRSQZV_npsSrS1DzJ`=2$D!8x3bIW z3+mvYY0a91+Xb25W^&sZ>T(WfXbjbdm5iXp+K0vMj!R)3yj6{K_w7?DxJg z)5Z*=k#n_BVpEDUQQ|uP056u?3?-fFO9{G3-8``0V~9^Zr?<*^d@7Yfhf;nzx>{R# zK~YI;x>bGqkKKz1u2!t>x9Z~T%BoZ%s1ULyMc91){6uBMagTTPaQnjy%+^JzJ5YX$ z25`L`*+82dWHvgI+N@oR--s4BX)QIn*WnG6oYR--nTV?oQ=q%QBLCoNP-JeJrsxJar1jVI-+Z1Y?J6kk;rzvpd??h+F|BMO-cRa#>Xu)~gA zhe`ln?!Y@O5badz4kYc&{6hS6j{&LFn325;Lu!%Zw!*45h&S!-`*9sG(|c1;BNIDj z<|^^xFbsoD#A}iWLe{U=AZ##vQW6I=zlo5VJvGYZOqz}a;W*{`68F{hU_04}NfJsL zy$-FFBoqm-Wiabv2chP)8i{(OI)~N6G`>vU`u2#AI#JDd4Z%jl8$}+J?mg4CEi$f) zm=`yhsLkbyma8q1Q)~%)C60 z$|8LyJymE_d9?O!ElC?W+uECYm%-l32Fde~(!DSxJPc~onumLNmLzP9o^Z`X$#wX- zUE1Su9w=={7R}^D&?H0C=ZfC!c*2If36$kpSi_Rmf^V2XWY^zM=HUHyK;^Lom1(WT zZkm6N`5>ix2g^3=WNtA3n;3+cs3X;38)%m5XtLnhz%#_N@ z;~dpI+{=;4$7DF+3wi|<$G&IV?mQpBZA257D7pzBde);K(ydTXe@**)9J_8iJy-1AENvgZm7j&XuiJQWr=LKmBsoAj?89JY z26iGcvmS7pF@cH8VFfy_4Tuu{wk|;`VY%j|?eUv9;Hxt@g&ut;(qhx2l{AIPhJxBQ zI|`GeiFE`;y5h~Irpx(N&_K_9vuK_jxG|SFN5!C(7d=ojQ*|t_Q)t?zIu9EpcHD$e zkr6cC>&K~hHj7$-dcvq7hfj!{lU=CMYH~F8F?{&L2QrW?oO5|Vk>@oBFjChwUDMK8 z^7e{j>);j*rBfql#s|Cp6a44QEzi6+s=*Ptyn}0ui`m=3h6vsm~TTA0t z3`-}{C>gUO)oT9$1v0F#>}tzY)D+aJy)DHeBvtvut88&CR)E4C^fpVAm{tWu&4 z$HI*U&wt8Vm61eJ^x*I3e~#M{{alW)K(R~B!uWs4%y7?#xuTB}beUlNLKEsvGK?+J zIch46xV}k!@pGwEU`n|y+ZmvqFer})sZFM#5zJK!4f<2#3;XSeR$7HHA&_%4@I6J2 zY1GLhtgBB>8Q?+$p%wjBPX7S4iXlDY@s}O>Q6g-PrwZQRw-+(& z$}@GA@ghf*d|5AL!irHWfWyDaG4s*2wXVMo~wzfp`Ptm}u z+Y-e}=3(Z?n{uh~W1x8;HpDtkM8(4f3h-W6r+u)Zonb{ORK65bos$YF(5@6ytJ?}G z(P2d@9@tSzwDjNKg%r3w)p0RAVvDr#5||0PuC(l(_ryo>lhSRjRdz)dGQdh(O_r9| zoQ8K_((1Rf9DP@G>`d73k6eLChg+#U^tW|#(3L{tpniAC91$sq^?dov9PBJkt44_d z#lD*z`zDU9Ua?{bO@PSOH$G6^liUh>VG>htEyOLOK zDhx=|P>$W&Z56#Iueg%)b?L;l$%D++hG?xytxOaEY)bb%I<5ZJ4=*VnaV8X~v1(a* zD{|PU$Cx@-m`}0I7WH*vCus};U40H<_@6q}VYHNt#pXIaDA={7FQ=q%?(R|T<+>=6 zcQrSc^8F3Q*#=edA#Dj!ubuLA4y;8?$Hj^VNHxkdnH0SOK;X}$4$KP zrH$`|Rg`#1!4@t|t26#Hjsn?f>W#`}&0m^ag1|-!8xU=-huD!zh?1hxkRelHC!wQP zj^SuGNOu(G9)Z>MCJq%qxy*(NhRJl%S6%b*9JARS~786Bf9<9$HEa$gfa8g{lrsCR`Sk%?=VLK&z^#gMA+>1=hUC+Y8Nv<+6SWjXF&! z_Km*c=x9_OhvYIvfcVdh-r8F|BabyVLmDH~=rp%lm0|R!h~9ggK0-X!1XE54it`6G zXKyL3=3>?JB++dF;SGLU-2VVsFq!c%6`RgUnGiUUl4&F{!gNS)4x(vR$mZU)i&EfD zL5~pY(=bty*mAL%biQ3ny_F2@pnajI1{lc{mB&a&&sC?Y^CMCtHf|c0ghFu92)=F1 zwBjz<*K7-7J!mxC$&uM&Q^53S<)jS3?>#>xT63!c`5Cz<5^Lq&A<4^{`7#{`q%v9w zU3d^t#IfnS$|b8#C!%IoSseJtJ;iL*&!?P6>H_zq55|c)>zA_p(saK3NoB-Ut0%Nz z*N536rAuSsDAFTo(nbnT=(-5}qyrKX-wcO`{am>2$;C;p*xnZ2fbzCFZgL!G(CzYd z$P_FQ-2BK$53yrm%YHI9aRZ8Z{*RXb01+9kDp99QO2oFKyR242T2Ok#&$W>ke_1i# zxMvrmPp2lzhDVM$ze~}KUJz4o~lk!n+Q=<+mhmTdWlH;VIpiYe`&o8^UmDIqRHt}6up%N zY?!yG3?)*wA-Ttc4i#Qg5!(fDiBS{HNq%l1o{+t2Y{Zw0{xxLS9)jynvl-*oOt=Pu zrRwU^V{Jpe1rwQQ0jiX{n;d4FCYUX>G2S6ER1rc?tbd*^6|%}}SlE$9wJn*Fxni1y z#2u~juvoIlATjZhGMmH9)eeZ2P^8W%dN0jxIjADrRki81DUEJgT2h<{fZajoBD)uw z%Y4K0Y;_8L&a7Tk?paN3mdLi#Ef%5@vi4P8uhGO-brVpaNeh&+4s33anT8EA zqOCJ?84boVZslX0 zjOV0CEj-7b<|>K~D0%4-h4zdk%Jxh?)E;EkF9V(*Ok*}Fzt7VXatZ`JC zs%4sq$DHHwUTaDyxE)LKaQ$tWvn*gvs}m&i>nNUa;47}^ss8pRs=;~5n3+c`)w8W& zV?vDM&Z9(Vf%8YGi>XHdt!zW+B!sL|bKY5;+$R!XLyK{EE*e2LA=RY4xPGevgxhpw zR5PskP+4M3hfTH|)(AwqE)TP;sX1>s8skTqm@6&Ciq5h(EFg<=BPH1fS9}U~k5YxC z!mIG_Gi2Hfc~Z@$#pE4mE{QnVZ_+>|bo$c}R?cwa>CPa2MM1fd^t(C78)vdD)fex@ zpe|tGxDY`qQB@}pwrWXqLQ=hzHo)gu7Paq5w=ag7gDuh6sWDNGDIt+n1|~JG#yYx% zv%lMl>f8*xwKWJmjar>aakWWKi4qc*EyMSZaa=Ig2o;u*09k^nn8<^|UV8teM zqKt=mB)Yz6=`C0pW8x%C#cISE*?x4W#HlNmDWOD_#2?xbz?E#xnK2kO3gm`c8^sJs9Osi7elj(C*g#%?*3uE~@M`FZwt-K{v44!en=n-nwMh8%% zFU&+ox6mSASF;lVD7>cOmHI3(W;~8mG6!k0eL1l%qh$|G{{UP^02a&HxkIX~IxG~( zkv*}M%!=TKu~kJuA1_z7_%f^kl*Xl5xxnMq2{J0Jynv!0No)0gteCW`sgE+$gPh*S z4meqoc!iT~m@|_(ZYMuqr@YC$+8BkoW$KQiMZP+Qi-qg8ftI119>4ph4)|G}C>eV(Gn%6OG!F$%J9-;0h*ro^6$`p0(|dby^fS@^9d@4jP0Rt?_ve?9 zo`2R_rj`gZ&N5^~fCQp3*j>`B9T(umZA6OXO?wMg+J28_ zK3Nd9C7%I3rFDI}obnPYRXj~)%GF5fwO$%QomCM}BI*Ma>9?~Sp=j)e z+zIA`=-rjB&(c|6Afpmlcwx@f%<;u4wQ6&(HLg5%gIn&pfFNn41l({{eEY5sX>^!k z)3@ogCrdy zPAUtb)DPOr&u^st!%Uy>W#Owjm*JYBC=w!~9AvleVqwwhKYJk?^q;tCvW_BCsdQfr zt4fP6n9K?r%ruU;8te|Dj;#cVef)P4a|$TorT+lk2+RKfJU_)T8U2$bSM7-=IE0LiVqynZZT_UiW~qAA zfw$!%ww>?p$3&d)_{$ek8~ZT4CMRDPfl*5sQB05&_V4V(!l2E7A}WNZ+83 zLITzvGQ*F!;-Zmi`tgBYCZ*ZtDvqIC7hX_lQYGZy8g3J5*VMRMgi$v8CLl#PNTY=m zwwvKh%e}2^DU8l45T)>+-icni8O6})`6tR3Lr)k>?Iwny60B4pYKS?IO zv(T1J$oY0x2`MreXpT#y>*YO z>Gw*#d{c42vw8E4tc8{QO>ruh9)4KKF(*Q75YXMMGZ$Agvf0-`QyZYK#TowSR?Z;g zZELaak^R0I@uP{E##Jtzl4n!0 z$xcB&XRMhF@Gp#9C#A=e#H^V}g-DSpxGYF!rrgp=GFRf$mlgFS^?R<#=Ye{SEwzox zg<<_a61Lk_S+@@((m+lp<(Tw3ldBbm!&8Duq`Ut4Vw#JIbs=6i>Y2MR4LqpGyt2`z z;^ApscKrP~GOdXtXh}S{Pn0s!(q0PFY@~n=aXG27QyZd$Z28`Av*XnJzqDJ?w{4f0=XREfW^!nX9+otns`HeV-k8gT@~?okb?gJCz*+A zWTmjoZWF?$m2wMJRuLIa`h*ZkfAXtum3&8Y;|#0$$y3G3Hc57x)QVT5fHt-z0*KKd z{H~VNu_*xt0yY-wHQPz3RI=?k`3y%sOU^4u;f?L9tE8`{_$FF4*oNj|Lx%9#s8))p zRnX%tmXuYtiyu$<&YTQ?bU28h6S&E9#ff<)92N$LC`v$!U$^orDqv+9xFeFOn5S)5Bj(uPRK@uuk8L2jIeVCZ>={^IHE2I^?*kp(!V)S1AIIi z5U`{)+JzRS!`c>EShL+}i9p)4O_qj?OHZsqk%+%q_r!Jt#u-+*5GZtqtBX-4TxGak zm#vgmRLp=cq_uLoyM6d`q>i=M_Es>nwJ$SF8#JWok!c+&aVcy971>|d zSt|G|Pb{L_%v7REZrVCbU1@s0Y71w9?cXsQG9q6S^8|Wik#dLxjvIo7yRMpR_qx#f z$%(7nmFAIiIaM>cQ{pSFydxpD(On@CwXQ!h_;+wUA*@n5Ll+Kc?PR*7T9sLXaj9Dx z*;_>|I{S(dC)AtbIb6wV^@%tulvp{5#i_za1=Vihr_vm@l=hNawj+=iq^};({Xrt7 zLX%Qqm)eU^<~X6uR2Gac)9VozPfi-`nS3MaEc*)pxkoK#idA{KtcOg1)RA9P5!mgv zp)Eu8CGj(GnPs?s(rk+{W=MYo0UUA^k7U#?$UVt)_ENSbc7qZCHxJrRF4?_YdbuUy z9XiiaUjG2?Z}#HvPBSXER3P#^hZ%TFx{BV|vAX66uL5l9o11c_e<{YK1vQr65pS6C zE4sCX^?Jvns{YJSETE2Z@|OZ2#;rwaEQPzy*gJZL3GC8BczUz4ZpHwr6jx?VR@+ti zJ8Da+ZH2m5K*^IEhnbQtOQy_;K92@xIgphqt%HsL(VknQK}MWu*0UVHcNCwF8GnULnw14hC{7K$TM`zr?B|Drrwa+ z9-qgkV+s53DRB1PtCxm5IZn19aN{Ngn{c91?w)m zC$|zsq|G)6sX@v$3Mcs1!^uLp+*MIi)%IYgXk_)Ic}GTe%}?eg%#o&1{#c1CY>0Zc zADw(3tl&zwXNex%r^s@iN6gctRcxu-Z=(@xc_VKq_MzqFVjC4bTDfQ>wgO%4^0v2@ z1-!7=O5#dm%~br(EqYsQ3C9u<<*?ITCHf8EF4;1)T)`x&T|5PoXo$Iw6~PnL_m@UD zONfxWC4(wnO?JI4)Qm2;O}lbbXwJj>qxay6xukBu7=4jmk(cT2(o6)zO2|aO>R#fW zxaz^hj$2x!jP1sLbxHGhxp!NqO8)?|n8QGdfy}i@%VSWjI}{ZhH4)GvCTd!~Z%!c- zfgDeyGD=c&g-0vIa)_oN%bvJs(p`NzeN9-eyt1oyb20Fz)+97Sf+#F6Wj_1*-8dLB z1e|q6pdw{8w;YNp)|E9|3h%xPj&N~uVWN{wuK>Y7KEGrXVrvTEIHjm{29IY~%EUk# z3$Er6L!4^W48eC?8(i=MM)i=lsYZ-(;@B4B0`C1(jak_t6F(tT7c8s2eizqM=(vNyIcD%7@g>EySh zqTfzV6KHunstkCwFz{k++T0$ zVrr@KkDCI(%`QJIk;64@QCF!C{x~4a&{+aH=(PU;g;|n>_cNACRyPqgADgLgII);e z4~!+m&C>t|ocoGQwn%^k;+Q6z`n`6n5)cT(4!4OCe4`qM!{{YiG@Z21r1@`_B z<&+hfhbBq*m)~mt@C9)oM6dU9|`K2};v&-F0ue#ZmXjOy>@~Ka5tS&EcOD zMI0LwqS^o{64@>FF=YjHrNM>~xGH7Myhn*JR6s2S$*>-Qe@9e>PyDW$}v7Tml$xv;0 zYRx}lCUY%8QEj@|%Krez75keb?~QGmgi6Z#nun32%h4>H5hB zLv6o<+tb^tY*Vam^srPguyR!fVCDy1br(u}+*s9ef(&DaG5$HCmcJq2TK=v89Xuc} zmdiF%N4U7Q*;3ebbn)L7 zew-+$SKA6HN^H1MP8WPAr)jGU4%c30H5#IW5<_rzB=M6nXG*mnFJ$wpR_RLMPKc96 zIsl1jF;_^CR?3K$Mc?0vU5!obZg09*zerlu6S-@z%Q8dp!!PmUBFBh%pNA#I;HbWKc`}tW8G}WaM8b&M>%lz<&^2NHnSCS_BEeq)25huO6P~ zF{04m=y~BK6eP9$@rv}M+ni;*u^dh$Yi-8N$>CXvoj7XTY^9&_)iRG!l?kt-(BPcnL8B|*sUG-~29PlFApe4RYQ^}jVSDVh?g zN1PqzjK5NuP-&o&uQ~D&UK1Z%=W4@1!VZJZOl}iQdm+q`@QpeNCg`q6(n7t*Na`^h zN)Q!`1l&||i(GOc(-@57(p=K5Mdcc&>a;{w`f)3y!X%6}Y`>VOOu~xqI7UEBc^ zOY?r~Vo)2#T1xDyn-1YG0A=w4Yguvm(5U)Z8kxORG=$LvOE{oJ;1VkJTeZCKUY#zd zQJ&B6=lrJUvQhGaeDPF=nKO{d7;>V)6VuL)%Pga=4&5f$*t>rW3DqvkW26k`S*2mb%u)qwP10U=JZ)}sJsi{v zPjz34F;C%$%uI=}No$%ol{+%!^`z4>{MG5uL=CbiDk-M=MU?6KR}+Zm1Yp4Z2PZc5 z1SEU~QgOypl;MXpQs?r&C)0)xUb4ej!02F2?iaaU%u5}Bd0c5kOH6lEl(g#gahyUz z!e+)Yrev+;8UewcE=N&q0Gf5P0#NmORRPYQujt0ToC|K_AUZ`r5RKc3)=Lp4}uhsx)Qr-!axRfYX}SC6aMS5In`C)z$My74y_F1d$TvPTS>l^IXL?%8a$8+@R{APmV322u2WdYoRudf31P^_McW1b|HJQ3Wbr% zypo=1+XHF6eNKS?02~)($`HF9(5EXmW*S``XyE(i!()C*5tDbfeK*thVVdrP z4xUD6QQMJFaoK9%qk^UMZPV*~+)8)dHCnM1vW`_|xtP5Wr8XL^)MlQ4H*Z@F+0H+w zP56eYZf2-u_kx;oH82ioKt7<=tK^OaOCueT$0?d^NZoW?j>3r&s*nPruj&pW6_J~q z1W2MonK_^%XX6(7^r8xH@^p>}sl*%-94BSgvOACZG}dKYlTRrO?fS;vHXFR5C#+&e zde@~^Ws~m#2!aaSLqMJ@-BC7QJ`(nDqykwKKFy{{w zDGlX#^x1J`vhO}VyQ5^OVkJ+O7={6sHrupGWtTYjTB78No>pauP6lLSks;G$P0{78 z{w;K-jk~I2ujo#PvLuW@gspaj$b(d5RE!2tIGV4f#EL%Oll||GT+OPo(hFfcCU-F~ znUP|(m7Aw$7;*u*w3?ezp;vZp%)%mBlRO z#f-&Ru1{sIZB|!3?n^?`dW>{0N+MY{?R;DH+RZE6I{<6I@&5o=Jr#kGRfthx#+M#m zmfT$^inm*1n3I`jvC2YDNz1g_l`^JYk|OIYYYiGx* zWzveHboG0VBQawLF}O!l@3STsJY80`Y=SCBf8M}W-JX+lve6n@e=pMN*?=L+5=P4C zr~$20_lFj){{WQERyrm#DuOLDPA9p1-Hl5{zhv?863RdL~(^ypSZgtk^H4lS=ma zr+|B9mEMmy>-cDD%ce_?7LgSvFJiZ{Y|mt++{O0 z?L;yB3q+3&ogxsq=>-(j$Kug7Z}Up!f?G@=7#I<$HB_jw!a7|9tEaDJAGg-QC9YTZ z`Nk`fA;+dQ7~3RqvsAv6-|O#Dhaab41{}eB2BjWK6-JZFN}SCn3+qj zD75&InJBn}r9}xe`*0za4_3jBSAo&Jnj!#9-91fN_tqvtw`QsYxH%|@|Li&%{{*5X3+gE4N}#_HOl-8RyzY+k9e zx%K+}Q3E=ordPW?4&}F@)iN%0C89{n?zd56R0@nnVZMrDT|(M7)QM|%OnXn!%I$4^ zL#(1@@>$HASj~^4Z;||=Vq3onaF(?2i!umRz(Q05 zL{3pE?{{x+dZOPRLiDM2RO6u8oPGZQ0X~Cz63ohXj40`u=ZAzYRo|k_rmjq?R-(Hk zP|6Aj=}UTuT5g#6h^t$H$ooj`@B zSM_Ubidccf8-nWxC3EkVTr@c18!NPQW8)az)A$fsNsWxpYIE!(4dn##9JK~17@2FzT z2<24j1A9_3x0)mgCb;TWaBXuTvTyIh>8q|y^?8XeG04*RBvsTVm-y2D+!8vf=H9Ok zoJO?o4|M}2Auobu7@(;VAq#@L>OViD1I?$s@H2JO)*F$YX1q*P&Z(WCxS^#6lMxep z_Z?r)9MaoP_+sk9fr+j?TYo%PWomG4y|AK+@Oo!6ZrsHFIE?e#!0>+4w{qe zeO)7E`iB*Yddr2fEdcrBqskQP%HN%Z6yXk`{ah%gL$W3Wkrc01lC~wUj8faB*nOB! z;S|Xpt9yqM;+=`xC4(g%qhu>+ZseP(A+uvkEEL`C&&y$`!F+-;EojmtR@6T$P-q)AC~xn{-HpZKs#3 zNcz6ElEn(q&UC7myCo)5os}~9M5{C{tyPyjA(1dsM;tWMr5aE{UhA=JxPiR(fOtt( z6csQ%aW+lH=@6swVEpKG0gRQX+V~e##FB7=7&jWa~Q>SO9q*deBGUY2v6r>t*wHQ^!7InDD710Xn zVu(bm-x5b;$8c@3UY|>=)X|ka;K!NI^n+e0((=ggb~hCAMKX038djrIfrn?zsH&^i zLQ^>xXjG9q4*Pjv9;ViDv_9{~be<1ZwKXa)JD11+Ka_%bZodw#SdT8eq~mQW2#aWA zZGQGdamH9+98Ya3l!Zs?d1k$zIim=U8%hDAobcSfpIgfNU`fajzy-{FabemhFcTSs z{8srW3MOt6DgvebZA*n#V=lY-%o;U5fK0@wPzGSQ2rm~Xk8hRoi%9ib6WIC3R5}JqP?nd0)pMt-)gG-lY_20}zZh*i-H?A5So9X8y)CBKa0ifw^|jmX z#2uy`+9U+1XG+yc$6&0v{)(F@tBSopqpuU-f=7foW-R?fT%Q`7ONepZ*4W*(G*#)+ zN?M(^A4SY$=NzPsrOlu}ky(Z`&=MAf&Sy7SAqC6*J-u&sBZ1Bl7ZAMNWKGI-Y_lq% zREbb*oOKLQqv#d?0MdZz!|XB4L6z!Pamy?(NX(Hk+*PN}IUbA4_@Po46ZTqvNb2|D zmPpaN6C)sJ%$*(i{*e`2*QrEBpP+01nVX`sE=5wF+^5gGvZIU2JA9Hi0})@nH&JN%f-msTGSS@3Qs>Hz zN_|YzN2D^-h}Tm3y341_+u1N>tHi9EN_j+l{Z^*H%n_beU=wb+%yAk3(we$D4Lc z0(vmNV=-dlKdqw#4|;9~x)5tw!j9#3n-V-|?6%9TpT+}YxUc3n{BMSpaRu42WUA;;Lj{JrCi9b) z>cIV5LS`{Gg4A2{0I zVfvHIM;@|l`VC2kJr&ktkfH$^8YZC>`A#6NAEnM@JCu<%)YBwa&|O&RigG0ll*c6| zd(hsvDv5SmdEyB>p#&ruE#TB8&ZkH~b>>8rMAZ{oX~kK_47jPtnfY?D9CIVm8#kBH z+5=J*Tdp*E@FvJ1eybuac(uIbvlOzfq+Z`U0|OBbsLUDEC~#Y7oQ4l_#1(ZFfmim6 z5>>MrDTyAIr7gOoZl?#Ab!}06i~Z~uRm=`fAtt?As8*ScDA4sGTUt5ix94IAjK74= z%k@H$pvlLD#`;ACdU}65P~%b~m5jtZ$6R%{6}2~v-gOB~wQav|TlnG1Kr$tn5=u8* zdTl)88}hjkRS`p+L_J@duTCxOiUesaZ#X%TO=O%vPs$eRs-tUu-Ug}gjhDoa*`*2# zoVHvpUY*e`W&M@J{?BxRY>rw@dSi5zrt`~^;OkUE*%VXe>cw31mYSID>l!hp6j`8( zNTTlRsc-()C!%Ion#K(bv!;VE+IN@=LRS<^Z`9`IYRXNxT7*sKh*41! zWGi~wR|JxY1WB!p+$U>j_nXq@OK$rV&rZS9Wdrm;b&tvCl6IFz-%jqIc` zT=I~wF_U3dlCBe$)nw)ij;bnm6;{}FHunFU~}nvW1V{{YM<&EH8h_Z@Q- zu!Zo0%f~AsE$^}~CPIJrzAl+>Fa1mZ095nG=-o@;mp?!Cl6!^!0Ohp-6J6q{q9-&G z-p`B%Q_IP5#W?Dh)8id;U>V)P*L3mRA6Zoab0F&xua74 zd8%T~Ulgqhfn8_rl53+-D(7jEM}}GZK2;@D*qfNA&17LRXomP$P0L?lG)xsUQCo?`~jKxc)xlp7w_LmI6 zjiPV~Z}N2)yUPOa*4La0l*>Mvk`K~ulV`$) zMA+X3rb4S_+}2D8?DRbvfe^iAMYl@**2S)utCX!>UJUau#v$e9cSEP6GSmkD04vtO z3lAx?FDa{n#bm%uEn`U*ckjZEi8T?jb0^Yny*eGW{koGB7v$!2pQ$25p|j48*VT@N zU$Z&$dr>a^7sP~+rR3_hv4`aprutPqh?eb$kxuTZg%qTO@i}@;$;{3j^z`n9j5Ly> zVHf2R{{TA>q&a)K^rC&ZQBI4e6Cc7UTWi({@5UA=XwB|RM&bdPa`|^a_7}>{pQOjuR0kb4ZgFOf%&pjBIKHCYqefP|Q107f2Urm#$l;MZ26x~HBeR>lml z2=4q}rpbngtcnu0iiC;hhC6H-KFRzIFuF`IF?7Ju%-))Vnvl8 z`Ko=`g3A=`dP}x9Sf#Ra2Nt7nt@S>fn+X^XG6jFsv@S>FpVMQsv_)$)M zm{Ci`Yu!BXqLxPrDR&!=qA0Hg&Rn+0e2Es=(Y$2jn=hulRH;lY5u9VfDi%zRr=qkJ5r7bz%6JR<_ zT7y;U&k(qgmuc$oJeiJk%S1<*aklOu%q~M!{&Lr658`&H>{M>T_j;V-1bjOeIFmcLyM}f7}||Doj8!nzCv$bel&BgXDW7fi6c~! zUT71`sl@faOVz}*+lei{jEHcRR2rN#snb0)r8T6rqlJAx`BKw>-JBxSk<4ZRpW>sz zUWDtY_O_eSx}76i{*aa@ts)3**@ryqo--z9r840~d6r9Hysc=ZZ_~qzSP>S?iTO$D z%vaf~Ht2}7>XJIH^`iW(Jy?$GB`2JCS2&?Evzp;MHOT}~lmt;-BSBqWx3B#0{{ZU7 z)`@#O;KO$mGi64-lNHA2xKb6+<)OKB5FcB9X_xILEqXmpr%rQMNX>|t2G(xLT zV!@~bdW395M4Aalr{%gIPizO&FKKjSws}N6(VLyitvwS{4>m)gq8B-(WBmtL0{bnt zNJp$Ohsu^AQbm*+<>QW^`)FW?`@t7RQCW}+ZdorC~s^%|6=h@9hwkzB9wQ9uW zAPFy|AlI{%dV`nFj_S0Drph8JimCKp8UhT3mh* zwPI&?%1=;#?8x}eY+@dAc-t6d9rpQ3gxHu|yL#jDu!l)7D3T8_R_X0io1aT^p24;j zHr+ubaZdiTLf)Uh4*@XP9Uz+`=giGe&4P5;FrINr;i?!qindQA4Onw%1FVL&WB&kX z{o*`4;zP}=GR$Ilg;Yiag9qmEzje0d7H{`gXP;xS>E(V}Cp`ESzM%FZJ zMwY@OdoJfknauMi%Z%U0x`?VEjUbJ_PsK0rz_w8sYoqUpIl2W(3JfP&dG#bEL`_TO zr%%KM`(To$CXK3g@P^ErnF_Zbl;l!URzxl+L2~^@F%g##ak|LJ&KZ(5F0D$W!b0ae zA-60lN=TlsR;Idl#O2$F?`T*};BYpPlIvN38qJd1j|fgrAR_TZ+NGA|wss>2o?|kPA2MW`rDlZlR-G1HihPSZ(ghsVv)v65Y(s0N*fXur+d^)$oDrwi zcEu_GTj?&Y_;_>cA**(AZmBK77Nm=gY7*3h zebs*4Xhd!7-wPDV%vluOP6BEp>O}MQ`p1pR#9R^nuRpjm2>UixkD_HHgi&>t!mQ=Q+V6ZMMWoH2$U} z)}rRl&}0VG1@M7f;UWx)2C)N3nxdj#se68I6DA>U&{+o5d1SH6vh`^pMedjwP9y7J zNtHT7G37MlNJG`?@3LYx{Yqff9(8*Tc2d&Ox&xNQzxmw%Kjcog<~Q z5EKidA$LLCac=BHj+Pjn-e;w@^l|67`)u|@xc>k=4qyb`q<^ls-AKry4y4^xd)x2E z>LBS&K5~q3Q_`p^BXwIUU|!fpiwP2jD_?E9*iHO0?pWj5Ev= zB0*cPW&JDSDcTI2%0xt>zQZM@_ud5~B~fUtf6e_I8Aek9Flo5H5%D^G5`z|%OUx5! z@+DT9Xy(R$ltUT8M$ANrkZwKq$92%$D60w=uhtoq*X=tjw<*6$1trHau4{Gt$5F4m zlG{?5HcKx!3aDviR>>2qx?|J)8;M-n`c!S(j(`v8Du+(ir+1u$5;HXxBbMgMTUiwl zrCR8n@61enaa|?OIw#3LDf5R}V%Kx-t$tB4%->0Iv_x`F-qMl$-%LyzD?#YLCI0}X zbJo{Y%M~xmNMB5eUEw`cgO-9M;D1={sar0@>y9n<+kALW(;YLdF1)k1KXCW~J&EYM zrK{6u@W-6<;ld~L}Qhx*MZFw;8#|n{s>2>1<-dZG`0!bq_OI-4V3@807t< z)?udY49J)%{UEcPls>?V@I3QglI^KH$OSM}TyyvtMp|qKnVw#_ z^duRo7eJ5rt|zO1n4a8FEn&V{>;wUs1h66koWhDK!|9gK>8F>!5nrU6U$i8>&yjlG zB`rl^z5f73F;J(hxZ5Fyp8o*e`03JvD;tfmn4*S}UuE%_rah0?zh)FtgASkNh;0<+ zkrYqT!dRwg+(efB@iHkw7Oy-gr)rKM`>-NH63;L6e%vWCC-%aQW^;e|VNB*$U0zsG zxo_Qt6rix8moTE7!isdbQA!8fg%qhZYQlX9 zZtJHNTPr4XI;`a;9XhbpCp}XtbXqhDf=4kmhf`-WmS5CEQ+5-Iuh$N){U>Y z4}|lW^mkUTx%CUQ`{f1V(}>KAagT?bJXeHO1f@{{=T%WvHEMAcbt0~-`)!Arw04cg ziK1}3tM2;dJ=ue-v*II(`34MVF*02OqaHd4#ai7f)5)>D(Ey21M|Jr&_F#JIbinQP zeo|}jJ29Tnf_y~C;r{>}GyN|!RjQ>&%CqXVL2ZIs)h)R(VuJ*#*vA7EP`0&2UiP*h z8j8^UGVX-w;R{j}?K=6yjyGp6BXJU)5i9Ry2vFn5Wz>yAgiwH-Zu(qQ5w-VJ_ogM; ztE^O-riCUo+SSXRH#!faZi9V(AYUzsg4v^LP-Am<;VPc`^F*~?p zkF6LDapur{?M%HpF#N``khbz;$L3GcZof)%c9LC6gGsIbz}s zn<5We)l6Z6r?PVyuodxW;LD+!V#Qaf^wp3e1lg{O^!nfD2dfaUAKEyLR*e2F233f4 z%8bO5EuKmlswfiKQE#ZdRKXC$_{l<-UkS0iuPZ6jvZL|QrwQT$MLkPoFU?H_jNk*! zr0v#@f<=74nc&i^QvktaE6Je{6G^q4C)T*0$M`m6Jgtj8aSQyWN?3o9)lAg4K^K>hqTmHTZlD{3azYI*&3h7p;37v~;4POn3kT54l#s9Di96+&HvzDaX$i21L{ zzETSdymtKKR;g8;pCmHOXqsGoL@rK}BIx|*U0i9o2ZMa3HrmJP{N^Q3D9*_3v?DK) z^{;lE3u_ehS4sPQxZivEnYgfcVh1XeywOs8U#SwfMAK%DbJ64xJD15U5nCK|E%J$$ z)AoLF+;klI1`A~o))A+Kb&5(&NS?2&ukOR`ZhRZ%CK_(Xw4XR8iIu8M)|+~3dW%sw zX{`)@*1DE8QDbyg`AWT%K6$$Q=ECb$3Ss3oVX;I2GF9AJE1_sY>Mm{_?AOAU`AHps zA7)0Jy-|J+Uy~8)D`oMDNaKQB#rZ-b*Zi>(%DHZOY(H~(ppyxg2TbSQ#QJN zMT^;Ahq>Li75IV>$+Sx>r8f0`sHe)r@ZRYUw4=$P0=Jg4m3g9OWFuDFZCX~?7cNEv z(p`&C;THEtgVE&B-;mzSbXaj(DrG^1iq4U6ShC$aS#)2^4pyWdlBs3Ehbr8C(rnA( zEo!|B`t>@YA>T5Tz?t6nUHkXNi+(&H1*+52aQmjX_@$F;+(2L(jZG#TY_)1eG>d{r zf{F2Mj-vNsvMX@eGUrnk9F2qSnvipY+)QQ11v1@0kPAYn$3FhAvlk|{O5niHpuWS9 zZ23%|=yQn*1VxtW2uQt2=;w6Re|NhLcJ;UHmPK7K{ndl+gou1A;*(4hVL+%escfo| z%ct9`Y(*xs`ynjLLGa!_=&erSKN6|4++ms;|y7;P`3d1LCU^1Zx2(>T+WZ`+cr^u^%bseo^CF9|ifs zH5bCq5nFhqR@h_!7Ql_lj^?YamsXc=iQuQ1nl7EQ(SC6c{2q9XJ?Q8WV~QKvI;Aiv zZpgmB@xZ>-zQ~p%qqE6Aa_V?+;>7}Hk4C4ED%}aW?5cgln4T?vvLJ(^vpo~%Dy;Aq zi_@RGK?~QhD$j3kzXTUk{#N-#`Zn?5PtGRB@ZrTLBmmAR9FcJd(I>K`zoWgdGRt%I zTje+P8^`XxaEnp!ubiuuCnQozlFB0>pVnr8Ur3#{>YiREep(Gjst;LwEb53NK0OrdskQUg&AHEv%Z#@r$0_*q->Co=Py#F z{cR!c!4=cp2N-q-Vr6TB{Q zPCY6(B)TzO#S|fy;`J&b>e;_nd|<2B`#1<$QSncl88_iii_%*(2~@J{wT1UgdcQ@y z4mMcdvXb`I=U>hkV)#$Z5;FVIT_{5-9c>JpdCMxT`zI>+fYsUL(1)z)6m^Yq@L9y7 z7j2lb_$89#s#Vb!{{SPt8XchUX$ZEK&k-H;?*^H&pAGU^bh#3J9F+_ll8NL=WLA6O z?#ki&Gbe}A`@V4l{0#W0c5!_ZmT}aPRk=!*x3`gk0WSU7n}53biCrtg4;CS~+WK4# zCW~Z7<(8D+dn+Bjj1KKDPpba_D2*zAXd<)z2e_dj=G_X+4!0LdBQl2GUTmk)jk9z8 zSNTZ`r(fO(=%V-~;uLAENtY%RhTC*RKwFlUQC;`s*>SebN7t>sQT44Ct49NV0eG2O zaoJSj5sp#_2|^^NR8+h6Y*S>$#=TJXD`_z4>3^*md85GB5;8v~RMzB8X8!;f+Qfb? zmAax?TtwSz?SNsm9jAJ>9{5hp9+}SOyqFPWe^*+1G-s=_(=l?!cJDIJr*4^iPX8(DF!VKIjD}4%Bs62%#sitOjLoJEXeF^wxs^adP#ZpbQ>AGRcbQA?O^tB(DbVtF60-Zu@TRqrwbAMg`ednTA-7P0ZXyVTms{HQ$9mzq3KRiW z_c<8{!{g3#Emsh7t6QE%YNI{Mr^c^JZAp_pV(L>?P?dJN=`huAs@VJ4!D`#2sTU&) z&}aG?^V^TTYi0tRNd4*1-1$*a6Lh*q+w5;0v$J8~{{Z^GIp-eQ>=A<|*97J=Rcend zStayRL_rX`D&KX`0IBxl&fbx!T{@GIgPvsgd`X>?(e|;mJ6IjFUWMrlc!tafI)wR% zE5690%6swfKJLfXP8Y&`N^P|-CYuHPU~(k}xgw((YA_gSv-Ed0g6UPViYgb^z8DqK z!LlIA^-NE-G4kz3i3U`Wq2-1dQi={bLhFd8CAg=r?e}0WXQvH?UQ)o?tyi2&;{`x- z9}WT>I%Bly4%A{WPqgBgsS>IxlBud$eYQ(tMf!a(T!rTdSE$u_$mBdB&QhsV=#%qB zMdn#)G_de6K!}^^xW9qbcKGi!0os^)dV?mF4xGvA&;&x*A@m>E{>$fxWl*#fn!IiKCk{NCd&dI4hB4&s%bCq4U4bEe8 z3|8B(S}6|v)%AXya+^Mp<%hMnFY6$D^Q9z-@5}sSn!R6@{{UHtN~DNG)=PDpfbiW` zi&n~c$=0=WNP?=Qx>Yq@1wSf1t!#8nB6NT(K*o9T;}HJ<$yp`xhc#3;`tUO3!29IG z(rU$fVy6U4et5)*E+?KdBrKTnq;m2-33uuzM{m*`Qk&Z{{{Y%|1d9?sDCf>4RmI&s ziO<`cM8Y1O?e^kE-+YZb)1Z9uoxb>{Caqh0H^e!dVqX&?(uk|{VM)Npbb3ufXrh2B zeK>-33Xpmmi2lKt@6onSG0GfsXds=koTizjb?o}6!)eq z3b|MZ>lte{Gb7TOcyFOc%MIzs2t;DVAjd^({{Vruuj}a?4nR9eIOHsFU1`#B%mU zOiPMi^;LGpVv6+E+bPk}&XLwAzemc&dc%s_;SA}=(?|AvdY)B)^fDrCBZ6IhxUJ}O z**1LPtx?0kdj9|)ZY{EzEt26yDfw7YOSn->e=7AkSVp2Sn%r!tGL;rH8K z64f5*nLCY{&Hf@STk&ThvnjeE(u%3{C9$V# zS`PJlJ}^BzBCS!}E!w_WjBXqFfX^8&jx>5!UCEAVdDq;PS)(;JNxLP@W~Av3y$D3M z9_To2by{$H>6v^yEdblUY7BRzI?olZBIiuhxw5Vl=Yl+hj0FNOCM0mWxQ(M^J2so$ z6)cz&sJ@%Cw@g4;Dvlqf(wqxfqm};vhq#eYjRj*z6LXlhW;lkFX>^f%Q&{HC=!3d( zx^-p345~5Dx+Z3C<2V zUaUh)zsVhHMmk94OwL)d7GH9jbq5A1DG)S*3JI^)-rrB3mL;2W^&qoH`DB5M!nPw( zLR|U8)9*9S21+@uw)ASc5SGK)Fgcw0!~0kFvL<{M)j(tcRGhFDv22h;6HWe67x2Nl z>?6ix1^w)hIa7tzDzznM6-n4lt<|GzLElgQR96BwG~2UZI5wNZ+0O&Al5^9vIi(cE zFaEzz*MdMXkjkj>l7AxSnw<)lCLC8MHm!*vfRc{Alu17<7=yG3#@G8R^O4Q$$()kwakgTsO5wObPbxXJ z?&*#6;BgK9Z8|5%7&xrZLreWbsD6dCpx`c;EMaYV17^!}$ z;oYo$t9+*tU=11n{DnLf13t-&XVow5@Oq@rIZt5E6vEN$7|M>T(xt!~kHD*WQ+ zdZ}hS&B%My5kZLlx2t@4c%N$86kaahii1}!G0#KhF|V22^c z5vIX9f6jIuud5QfJA9+6+IqgMkU5(o<+@EN_|*2CdQ)bg;)|g0n(jK9R>xA0(}ue{ ze4%ezrH3VvNvL(2h#Wj9zjjNr~K^~t?2VGZ+ zL9`?S#Dg6r?;cOd#9)?~>gsC;*m%X6!#vE(e8}tr&hkD@V_boLKJBoM7BE1(Ndut%?`LsU6$c0Sf8#VeLBJubEo00q|)jbB7Ld2MGBY zQY}Iad74XNjlD@8e>ogfbwv!@ElMg@R8mWJ#n(}#y+-E);CUDxo9eN#+1c>|KpfS; zSsB`oF0n1sgHUnT3?sbDnzT1RFa%oMh`m=LNZl~U-qvT)uZW`fgd)~%jI8I4YlOKo3C zl43-D6Y*V{Ya!Ysha7vU(^V8DzgnuP7n-WA@N0>2Emsk^T*{&`r_$3^c&j2H)i^uF zij<^qD2|JERYKOrg7*B8f=H0MI zv|lqd8ghIW=NBLF&BqB5TyM~6$fzl+RZc$l?7x)36JhXK1$0*)p+0f1Bf>u#qPF6; zRP8Od%qvt_OC^zS>w6V2JGQWWNK5p4{{WNcBxP^ItT!mIB2ps@(nbg@mt`AFCpycm z0a4OLPktkBu>DadHiuK<$@757{t+-6Po$1`5A7`2(`*6rt`z`W;nQI?eK5;59hAu2qRrXR<72yYT*e2@VeygCS465Az z5(}judsY16Yu*%ir0dU<@@YFbiDZ^nU0&Xgb|;?MB~11M#XfRCWPc5H3LF~3<|y8o zIa+9-6iEP03Zn1K=MC3Y)78NC7M}wwD`jKFK5?Nl!XFVUFRZ9jXmJylWo_478>O%E zTKD38b=&09EtVniNMzyPgM7(Fsz`e?gi54$X|DP>Kz!3ngsG&7Txn9XWxQmyQ}s?{GjIA-?R}1rQolOuNy77E}W=_h^T=v1#Y`<$n(T~ z*SEAEa_qBP&~oJDLfr7E7Wpd}u2>^61S9E|pu@ z+LBOa&j|UGGdU$Gaa*Ru7m*ri)?RtW#_Ma6G%C2S?Zw-ZPUG&AI|ol{{{WPaO!yeg zE>D{gb4w1r2wHMO15cBz1?y?LY1;N%Vpi=^_e~G-i`DeY(&A*O%^nUa)gfWJH6lb} zNWvzF+wYU4f}KdF&{-GRiRq@Xd&YHE@CU`0S!rX#lr|J2LWv=4p4I7G zNLsHx#+`%>Z8|g2r*!WF977kFi87@sFc1dMFzkd>r;~g6qMvLqnqDB|l~!%|bA%f0ARC>}%1c=O3G+@%%JFFPpgA6E z(uw~7PxN?|#b6SgO(-fQ z#Z}`KwXfT@E}9+}Rc*IZV>iG`fY;iq`puGDQt5ByJinf4pNb9S!}O*Isg(JCkkMHR z>O=;KvVGX~uL;st$O-5%zsuB#QLoPw!^yVf`v!8uQjyYK1=KO`XVMJhPaXnx8eT)RHpum2P3wd z56Yz5+#jldJcJ1`QCCv8x&rO-h{D@{XV;ILo}69TWRO8AkH_3h_NSv7P^Y@$Y9oLm zBbVzc2ct}uQ4>-k>m)9u)MIRXsvV`3?Gw~iS75W7O@-C79X>5On#F3JPOK~M8)9Rh1x2QD)z;yr8S7IxFpOM9I{;v&?HZI zS$%6@b7`$Z91lrZBe;0;U*MkLt72`pUag-mP@*CWtFj?(tB7v485X|CwDaWVZ={Q+ zqYTk?DW!yV8!jokOt!Vu{h5jQ-AERmA4PV~7v^n;wusoipR+eXRFKU701Tw~#zYgL z)O4khSGtP)oA*oi$6Kb6gZ}^tl}_A~JkN3Hgsaqb5gq8UcTWDUIn}iQ@@=k25(whA z0Zw5>Gotj$X8!;^KaLu1hDlFqOI{(#bKyrDRI>6!m)+8ss#VrnFOd+oD}9)_N_4z~ z(}M9%gnGV=D5cJ3rR|7p(Ms%2mq`6sVb}=j?r7->Ea%5k3J&|-a1*uw!^@;{CM3FC z$ik>huAcamH38-<)0B-}I)2O*TuQmj&qUBZe_D3L*yO9?{iF8dX|zVbiM}T=rg1yc zU(X6RI>L%|+X^Y(6jPW{%uZu7IGn~KQmb7)>?oz?(7%%7EZ%YKO~80{;4How9r_tI@qypl%inc=DC2IFeLw+IHvTm<+Du4-a+9oPSTx72#zPz-_hyYJOT%npY*n zmh^49cB3%J)@gR-sc)R7pTge`1)I54oaLJ85}Ra}K+A2NZ7L$DBBGe3t!>v3EcAZS z%v;EHgcn_>=yar?v}3rbToQ~-vzhZ8_}U1H;0-*!?a9l3#|10kZE(Q1oQB$!tmN|_ zW;v*>_(6jpoM$u4lH-nDRrrwAZ+`o^d|0dWQ9=D^Z~3NMiBiWq2g(xVP4L>}BJ_EM zCeK?-(c$Us-}1P)H=?e~$m8#kE#lP`#?QhqUCiDe>HP49^9?v8DW{PE0e!#c6WzWA zKcaQ7GiX12h}>f1_I^>2_Y$~N^KR=%j&*v7H01SmO^M7?pMp_eQJ=n7TZn3pLcb_I zpT$lO)12k25VVzugcycsiRFG-ThAAocus+Rq9g;Y;w|E_W)6GcmSS^9JX__ow?ha~ z!=*02m9^IvHsG2Y23H?EL8plE3j9aP8S?&V@byb%)=ZHiB)B6_QqtOQ-&gX)1@w1L ze$UK6kH&SQ!|;v~;&%c?L=v>FM_)cEhXatv+Ms zBdx|YpJrsI6ns92sh6RS`>9NWWYzjD-w&^&I&tDYVm10o#`>)Xv$&(dw3y*BQm3>9 zWztSWB}Mb<2Jz4;;CfZ+SLP&dTD`g}#E{;LL8gXmA~EBVci zqW=K0@ll>JaC92$tVJaeUscwHE&l*hg5!bcPwgxD$eq3a0A;3oJZ|97*+Q(!DK}1&3I2!BukDxdm7}lK zw@ThNhs75PTB*3{&qa>er}c1?B@*3|#iI6J__|Y}&;k17{AFUxb*=j+j{xy&!5H$~ zH(_gRENUK`Ef9yNZjtw5(sVp6l#f|K%dQNov+-Ztyl~9%iQ(PhM&HWl@Y!5JS@TGH zDkkWu^xqXH;T$aW*DvtEjNDK6PaB`%apAO$6>>~cMFrAJHgerJ{Om+LAB6t^k6)Mi zMh%=|!^kwwkK;eXtYT!D$#L6okx{c*Q_D|Q>urBG71rTA7#@1z^8WxydZO+zQ0AsB z2aT=>khlK;CSb0m(uvKStMY$8-HNy9ZWI0>PR_dRaqtqK@Z#XZZK{q~WAeH${c&u& z?|x^q4h{{%5AFPXp(L@`@@x{Vgd(W$xa34mB%7nxA-BEnr`Y=JbKM3da{{Vz<^p>o3 z+9IiV@!=~j6|!_?AQ2)(itUv;Zkw|KgeQZd&6kF> z^(_c`y#ZI--tPJPaWbw8z?r}CPx4t`UN^w;x2`VR7 zmpcYW0pNVTp5KzlwsD>=ezjr?D_%UfS6vwB&OwI}NQ+9bN^h%lUDunvz1WaAPowG9 z*KGNL{UASG;?MhJ5M(|zxL_pOrdQmF8XHpBUuO5`Zo6W%bUX}s{J+)@7x6afs7Z?F zjZPl6I{yF`4O3Q*s#Im%cJIvly||3peg;0*%l%+$8;c+B3G%Q9jZs2+P{{SHluAg1@*XJ*njtsW&h_ja;yQr=pr8WX4 zo%TdT?Y;>u+%L%dgqCR4%MJMIqc{Mem!3qDKNo6z5!I)?x-i3E!oB|hAt$b%S12DH zl+;GayuBrP%gRI;Fg{8me8To(2Wi5;cK-l`J+}V z{)-KEoG15h_(@x@A62F_j~*{I%tXucEX#t?CWu4%OZT%r{5{(6f896XH&?stv`>4- zjYcs#gG866BHhhN3|8d7^f;T^aDUw~`AOZS!|J!rCzp?G!4<+3qf0_yMdejE!oF7j z05RKa7xj(@{u#bvXl&N~mXtT+<2Q@NqLC~~L(&uDW37kV`44Y=KkFP1{40FNp#ji6sgm{ zt=%rN+p_6j`W$NfQ-Tlf--!I8>~%-#+4G2{24OibiewCt4k&LKsdZDylAy6Ml@)VDnvHbw)PLx@y( zMara}ih7ksredn6??B%W4;DEn66R(Mvf5TUc54O{~Tv2h(LZZ);Waat#*wMJ2 zoPNwhKC0exGyFI>)ZBC~YuW(44G^bEBwOFB*Z%;9G)^g}{nE{SUB1+8{{V(Z7MNEx z0xzPUEpIYS%UA3F01RmSQiJttlb254yfYpD02o|YZO2h#vP&PWQDjQrU+d##;~I7P zwaJEtAG9;Jd|`1i8_xr=BN;T6|JR8dRkyIw`MIhtb}0#mW>!PP4U@O507UTi0-)L7HPD#TbHbpFZ9`ciWC*k!Y|}}_gsrQ55f*`@Hu4JJLurh z$UsY7MO+l?vUk1jj?csWQEtIT4JaC#bqmv2rX+EHJH~F8RHy|+NmY{;MVCOx6~rwH zHXW_D=(vxp*S&g;p|G-kj;qhLau}=O_K!uaS8_bm%=HSzQbt{n^q6vLo|r8({eu(DYZHs>+^uh);X zzKZINx;mKH32dMHz%zvLWYdBWu2^{DMqqjZ65Ym#Q8&BIm)HJPk5YDrz@NwRo_A%a z9Aog4mw=8#k(j172HGOQd3s5+Rj}PIh;MoOvB141`h5o6oR$OOpSpA{6_tnDqYdYY zuA1W+vTq+N%T18bJSLab6rZwa)9MH(+?f3NT9;9(IZ$~|a`t+69NHf9B`1o}^3_5_ zut%6}ktYl(#?lCa`JXKl6>BWI(A!rKr4{KA^JsSAOZoa_cNH?ksR`&~WoSVa&Xn5v zQ`(rd(P&h|FF4yEA6iHnq#h&Gva6>};q6V)8SOOUIO9MFdR2EN6hzr?d=Krmu`Il# z>hL^ZR;QS_t(2(qDbMikr59d=T~i~tBB6ckA%8z5#f^0ud~(c?)M7+fQ~0q^iyi8P zJlP&`I4DhuZTh(9*6SEIbu%VcOrQP~V%MI{+(8%EbDQu4V=jV1(2pLK+k9rRxh5XR zC-rkm9Auo#ej`_g`b*Pnch`QE`*Bh|$CKDtSM^dWy;g4r^v5eBk8imly6+m%IT4w3uUrwdI0^Io@ zd?b2JN|5PHRG^uUx7URtiPvqgqlQbT51ErFY@ytR^HfWA-7!#aY|D^d=#idKkVths zi)>!k*_9*7rU0o4eRz5~IwI}v#v+ykTle5>f=@VS%QRn1C49%D%IUJ=nSI+%CqUBB z9vS645X6+gQ>$T2Q9`r$&W_Br_)Hk}Nb(*=NqW4IQ@$kjOrtTy)T6I!iyapdU`<^ChGceMTXM4dvCxM(#aVV4bhQrqVo_NT^q50+)9t<^kslpl-#18c zV!&%g$lcS<_^Q*^TQxX3FL0{_*3jC(+fmZlSCYbl6gv;B( zw{EgrRIEMeX-{S}ia7o^FEvL=S$D;STe|`0ykYN_%8DWrYKf=1rYjprTFpomlEZvKCN! zw89-rr90q`*|g^@PklIBW@bk%d*8PBcWjNib)kK}{AX-iqoSHRr!lM5=Qn%ywkx`Y z#cvPkPHqs<#i%U6%n`-4XobjNcWjW8tMqX~;oqunj6bX$`4ju%_bC#MJ7GmQI8jcK zFru7M!isjArLdx$RND$EZwe{QW+{AD{qZY&QjV-diYUhtalsMuTPL>}l2&>};6H{K zxzdhR4Bwh76u7nnXes=c6-L%wXyJ{ox3>(}r8zBHc#Q(xt3$Ru@uU3} z_-L+GBso{kd5BGV)6tk{)kJ$Pon`gnANFyZ+0+G(oqZK@G&@J8Qpr3ar^BgA$(h?S zx{bUD)R%#P>t$@0T}ZY|c1#pr7IgmBsaiYRQFl!{EXbwTIA58gg;RaI7KF;Lw#IaDTcz)=Q3ZowA)}5btD^DO=e1^!?T)#3r0b2^`ODdXqB4d*3 zJr%05U7UA);zeFDdvXq=?u}Qti^7>E+lI_TD|wAIEWcSUDeJ;?`S!mUEA)n>{b)2U zF>qcCq+w$+t%mAN#DqwzebZvcV$*OvD+oQcy3e;B(KAN_E0E4uydv7aZ4VVWyAoY` z0Fib~6|;cpNa{XfMze`()AfV!hxobs!=yS>L#z%+5|Jv%rD#|R6%xT-} z58@CgQGAN7K?-)~bj~l4**T{{XAL7(R;W$L&}6getsqP=2ZTMRDS{ z1KM3anH@C8^;TUm65h^+@w)mgLH(%yAuLPAH3#bc5j=RW;rpXg)bdRzs;f2@+kesH zf9&R;?Jvwnzes=f=V`_d56sw*spzUIJ5Gp}UH)rWcl$f1`%Ci^Kco-t%oTr1yc=*p z{urmOtD+*Dbzl7sI-lrn8}^guA}+O$oU%M<;VzLRtwS3)npc`Ammc1$SH*(95yO7k z{Ny_|ZSRhM>HC8$imBDxEhM+JweM~A7Jaz5w*=u{YXG*k(e+wmyW%5*t?JQM^-9XA zDb-tjBGw)p4}>2TjE*62`mHdW@g2c?7dl8t5l)~vFYoSKHGS|F&JDtd{c`?4l!|zk zxA!eB4~Z@UG9;-A7@)SRZ%dYm_X1*s{11ia_38M*M~Lfxa?plR_f?NEoy+Pbn1HB z_FPM^g79G3^_C#`U}6h?CBz4U$h*Ry8rdf)WDK`OsO7e0OOMV6q#QIgbxuJ!d-GGU zmYaL9<(gg>W(};vJ{aUAZ_*r4eQLxqGvniitt@AkBg1f3QUW1U0IoxCYpaaQKO$w~v;E2kJd!_etzW9^s-i`&wZD(G%T+VdO z#hd%ueBz9+!WoiTNelRcPgQKt4%BFi?O&9A_r^|_(ZTy$4m`2>z^zXgZ|`aIfr`J5 zOqViz=^u)1$5a-~fx0|I5w*6quXmmT*;k|Ek{2KjxF4J#nr<&um^LZ<;wgC4%5A*p z4qGil9SoHzFt$QO-@YpXt_&ZZ@V^21!`+t`ciY-1`{qkNHS(Cc(@B?0Q;{4ry(S8l zlttYz+trLHRI~E?xEwtQ)xXLp~@~x;M%H;K-`sVgo4VVcV76EY~aH` zM91YeH{L$0Oc|a$tBsWHG&xDh2F&iUL`L?vs?Tf~?KmLLbnVODAr8}4N3zoi?;aVg zhaYSxvPVP^bySKlt(6CV$a}E=0IhH}{_Nd6$K?Rnb>2-enep+So^s7nW$N?-ccu1y zL`~Q77-@B!6Z|W5^BO>HfM2CFLqG2S0F0VAUA}EN=Z%gk zbEG0SH3(s&hpMLbr9njA{@Ys;ze{L`_kYGn946D^(P(^haj~(8!o5)&)78esYH!;} zp(os%VcPhw4Xtw8U}W{-hxd@@!ygsZjwfcSJrjtTo~=Tl&Wj=ECN&}HT1}gqe-uiI zx~;bCo8avlttPKMj+ILhkO{_q_`_0_b+Eu(uN$0Rk18ur=gg4NN_D18r#^~pwBn%j z32mrFJ9fS!>Ntj%PBO_^$vNc;E}j1XcwqHBXz_|;Y`Ci7ICFV_<+7Y#CAGEtum-*> zr@VJou?coAKWJo&&we5Een6tpU!hhr1erCaTA5IfQzw`R(j2f8adawk7)9($^kVG2 zhMJ<=l>B+}`AUA8{Y8z2+@sD!`lpNTEk|;p9mYTjr+^g+=k;Av^!LSZaor$NS!x*f zPMT@A9oMKE}&`(!>g+X#-SbTa^YhmmM}+r>227o4v$V>(r}cUdxFsuD9Af zpCQv6rEaR)?w8_5ncgb6!5!y?d0B1e7pCYn?chSo@{gd15K z6)V}aw#nTwGy6;k`eQ~5WbIskDOmo`*r#&pzZtZAlg6ykQQ-Y*y-+Y}T|T-n6aY{_ zL|a2uRJW3@4qL`=VT#3LpNNDs+$9u!D`rSO4DqIyouSpK@?48Fq`2BTDh+c55frWj ztq~7vt+B^-6j`a~b*ujXEWOiKmV@ju5xtrqX8e;5S$mkt|h4!Cc_Spo>6i*hAr zf6l%+x@p#<&bG7RIu@hVwLLBD=%v?b+%X(3-P zW;p^IY_}@wU;I+keMy&+c9UcrJEP>W${EsLQAVdiZcKG`_FaBjg1DxGb2Kfj?N!H4 z)8A;fX}MdUgs6QGJha%F0H`wzWj;jZKFZ>fijyd#bzb*v7ayRW9ddR9nEQ|AiQv6r zTV=$oNaVmG64y=cn<2En`#fC5$M+-blO<)I(znXp`+ zN#em}hadPNES)T>n4JA9qR6VGmtE|*vnLc(8&;8#9XvC4*N@8Q4fyj~kwS6}28@ik zMOVNds;FvhRaa#~Uf#@B8;ZVp(m@--#^N2@N#$hMrK8sLL`4b-bdAsdZ1M--=G-8hY*f zGXvpBf0NeX4zydMCf|M}ZV*1pzRdKAN+6%%M_8FAstrw6>L|9kZEasC=*Li~oF9RV zAQ_%)IPajVG($ksdL%zS{W#~gZr?1ri~v3o2oUMO8Bvz6z7$hFKlwvnq@A$KbTUeH zlCL{5>(wJIUaVI8`z?ySePy2i0O=x)y7t{QV%;h8ES%DRMhnF;l=Uj6*6-U8*`k$? zbWQ%8M2bl|4JEkkYjF^qFI8>Z9QNypooh{6j|jUWYjI0S-F}7dfXkMa#<^3Jy&dTD zg+)_WkplNjGQ`&)rY#U1m?+^-k*GaaH7a|tdDGpzN*1e55W)7LU6aoj*+(N2zOR{# z%_3d|&BW#uMso^eP8Rsg$(3sMd1Dc&Z98E_I`hJcT-DQs6z9qJ;YBFas<=@_Cig#o zP9I~=KD}qK{{RcIoGt>&mIxYQu!cj{s8@MYeFL?x-B%q;O5G&8`hC%*!u}A^_{E(o zlV{Z#s51qwW55i$EW>C@%7@BPBUHVvxU}Bdhh2i<@DNUwYoeU?F)xZ)7l+wKy_e_F zmKzSmu0!Rz+j0Y%oZn-rN{C39p$!(MlfSmaBKok^kSNS`@Wu=}*N6<`C4_D1b6zAt zO=yS;-i6Yo^j~}u(rP!4jBIIu6Hr;Z;a(zFY18>d9yF;^SZS0#Vke`jiEdhbYhmqU z91dUhBUMs2NXQums&S(@({~c6EKya{b8`N#f8NCdwbcEYZAAttmk#DPPkHB5b+=X+ zmR&1iFO#cR?_uv))QR0D@{76nmTpZzIUyL53HXEN3u?Q=4o*5P{^FqtWWa z@gOR!#||CTxy-e2PIWiZLs19h{&%hWxMT~*giN9+#o^PB6&Vb#-#B(W`Rm z{M;0-?M8Y*C2E-QczYqnXsXh*PE2*s>d+{I2(ZmE8)DWrD9Vk|xqJ5;>obNF7< za;5`rfQvM?7ALYitymbRULH`c~> z>LDPN`O6f(8Vk}X2>gbKCBl8pK4>BHx_#bQb#(W}*RvA+ABN)NnS8n7%bNSZEvgoz z(!VRC{ai~lU&;{e6PGz=Ckt0o#}zKQ^v)cMPgO(GP>HHgNL5D9)iDyV^!xp6 zO=Xb-v|DqAP0E!N7%~N1zEVoyWpM#rL+bmm6|0i_Lo%tHID;Z)UO*D~`g87e3E4Di z{NHvo?96{>x>1+-YX(teha7n{%X#zwR5H_|{{Wlr!tBh(&veJ6@YV~#MtxmfGAm9- z7SK;^DxE~XUK;G$Ik7(5Mdx^JPZ+Y~DL7ob$dS2v3x54tu_#i*!^Ufb{o_toxNA;l z@s-ta;TW|xSx`Y$)}?;0Tit>NmghAaN7rwZTc~j6mj$fYCa$sC^@-eQ$m?8e62VS=0Tt`A**9K|Lx!6Bu$@R{|UKihAVrXED1PkSv#Zb>pu)810j*!)@z%EQ;ywef}1 zV-hQBDVS8OiAR|qDK^{0-=#Ytv@`+KBp^XVjO@Ce*i-S+8We7{|?M z(~Ocwsz+=J&7!!4ak%yGh~q?~GexxRmCeX>n179|ot#+g#~~+lYBDt+&foQLQ`FQ* z%W2HbE*{cpvMa3J91+Xl@asmmBGc2BQ z=^n4A?8IiH5PsO1N#TViM9i`z^O|Q_;^;hRID|se^$;`6ZY)jFq%z)cREQI{Xbo=n| z()F0_DL=4Te=ub1yCPOvaC^Beswql#DgnQ~LuHKNWJNE~OY&E`gJlj!pT$=RY^6)%@HP zuS%oG!bfdZl>Wf~0IcqlmGbNv8Flv>Y<)7BB*{pv)phlHI&i%~Idc*_YSZ@yU{Uh^ zTd6aZ88#8lbMK3Q)%7Nio6(I%g*kJK4O)KS%z9p1q0NIuVOs%GtvbOo)Q8I(er7Z3 z%je@A?MeNVPIE8OTY)l~41l=aVg`i>mscpee2=FL9Wwd&&9@W#DVV}Dy!@oS%`P)RrPb%fX#uhp=ngtsTs5%(m-o|&3t#es z*;vHdMFy8vk(VQK5mnlI`tD?wCbeQ0XAAagEz#*zc?FhYlSodJ?>6XaG3eX->Kso> zGl`9hF=5l`G9uF95P>{Z^JvEB`97R9G|MD*f>Tg|MvBDvK%W@iVh|7{D{|8Ndf3<0 z)coYG(;hQBFj8pjj%rb5u;kQPM$~U`5=GVWu?N(LIP+>Hxy(`KelfZNjtg;Pt2+CM zSbsYU)Rtv+5L-}>NvYPe1Ax$$oTel^&9u4*okP`#Pp27-rmEwf@aZI{1*+4*wU~;7XDV>Tv4580J_t@K=_E3C#EOZF3eqKK z^p2*Z)xJ_3XE^?k#!Ro0-l5aXa~!CEvsx7A0!t+uBI_X4x1QLHwWBaa9Q@?Vb(+8r zLnOZ+xDA)GzDoh7XH3NHL52lRpDpNt6dP$390cVR^@=6Me%u?>Y3)?l_GNqqV0txH zvv<}KydmZWV{u1^)YYd`BZK))uK3SpJ8jA^io&9!q=c7K)pcE$Y*sYAm_=fM9$(Ho zaMmmG)o%DrfAOducRkE6NF^Hz-${0|S#H~w$K8)aS9Y0MY{17%ALvBj{7oLg^qkCx z=@5y<6>zkYT}gSWpZZ*S-?6by!FF@w&mYclp-$Gv<@rsD_-SNEI?HSyRkbc(d#A`v z)0k$L^YX`@JtSABO@eZA2@OADbDzuec$Wfm)ZT6^F-kTe z`;|9bQ);_`S!r7Lau^+Yd;RgtxIY)bVW|VppN!oNCx}^Z#0?e`Rr)Lnd!#ovBgbu{ zzk82ClG@u{aVG8`qoEIA#FNuL63N3BRB zR}h=>OJmD-Y3~k8^Apll*o|HhawMSe)iNv|CvgG3NIH(?R_)3iI!s?(^ypir{>({L z0VbAqS@u?W&*P(FoKnn0EQsltTd3K6RPwTa1o|<|EI_Z5EF-ep?5u{jUUA;uwgw*A z+6ZT?{?2+2@MBa6*>5|tQMKzja;aT*QBt?62kl>GI`*4N&IdRjw5)#4Kn^(2{S${Z zNsq8iym`h^hU%%H?nC8oJXUR>1%=DxO(!|(+Z4ip7&!BoT2(va5tWoK6xF25i~j(? zZ52s>@U#A3@Wna3vo96$Q6pVQFDdg*$mPDATvOPU3l3PusdSQcUii*WoPjxKJoK;f z!rkwRJ4%x?(ZWKA=(W&_I_$=>OTVPn7Voh23fGta_AUw~)Gb<}H0=@mO_-rq($O)jjsCVBGet`2b+ zPHGWE-=%PPHee07lr(~ZD!$xk%b3<-%Q}Udg{QZpr)*N`>n+!gQa_Rpbj7MuWfsG` zPA1ue?6l6MnCHxAwk!7>Vp+7qnS?4lsS6y*xlOg!TPk8VXM-MVHi?ZQFTxpxww-%d zF}=w#I1C6U^@bEjCezc_b>iyz-dK&>JUQ4bUJR2=cywL$A0*X{yJwRHD;1mJ?G$>* zTrXm3+YgH%^GJ&B@ZNy*b>)kKYK3CeeehUW2c0>PqP0nSi&B*gi&rSrZ|(l~#j6km zY}rtE{VYfVYcGzSc*fjFyG-c?4SQodNsDQUvDq$rKcp$ujhJC!O2$}64s>^!QDjgA zd29fsyzxW_ykV=?06@CzSdlApg@qL6tSF^--wG*8{{Y#A6zH&`oYRFA?RQKlr(Ul3 zQBIe9D5cLVD5Kto(^QCF$Ay0M!^$%sS?xEPa!(+}IFX4OD+7#y`x0&ioL!B$pR_`?}6pxmqi=j|<=|uXm z7QP^rSOe5f8$7(^lTvK`PlOERnigHiyhd~2m5$G)Wx0$iM6Vr{2?tfnd#AI{8Vjms z#TR5_nVD6zCw{!dUK~8mO7QoXYY;`bgH2ZCp0Xy8oKw?ld6n(j_$i^(S4G_0wei4{ z?xwpb7_SCvn~3?Fh#Y3FRkJ2)nldJ{36xS>3O3Lp17Zlfs#$j16Zn@HqQxWByApbB z@ReQ{!q$PD^z)I^@dmG{qq3gLf#W{TxhJ zsk#J<(kaCz))7r3^1I->S*Xvm;RZEeN~7@lbbzAr7npNdb#$o*UW@wJ&_1B}O%w^- zE*{8{7L07Tgi>akD2kwnL^k~Iem3l(jzU~-hpv1Z9o}g33aG3tv{_5p>w36dm%3xL z1LrKckYzH=-DCnR)IvL!P+p?)9ug)#;wr%@DJlx`pjvKr(2?fU6A*76@)SNYHYRUDnjAAFFj0am>ure`Fo>*7dOr zx=%JO9b?gKoz#VYN7cj*&rp0OxYG|AolxP+O|w-XlpMCJ2*!on)k^wHx2v`t?Dd#E z;nonaY5DV+wN4wwjLu*Oh)Kv&*#%bAzE{oZ_xa&=8nfa)Qn9yB=N05|#yn-rEx717 zu;H}vC~MnZpI4{f=YmGPS3dZdSEgoEI9|a^mdh?66Es1X=DlU93`f=J^|!<$POI&B zLu+L?ls&@u?@XnGM6HwbGm=WEOQ{0-zE7>T8Q5m_KIowfhMtmahZKKlcxz9Exyv6lZKQj*-z!cqp@;1uM&>2?oGoRxDib-M7aG116%h||EBviK>=8u2@sMm(A6=t@y~9{B zqUQrqU+Pr|?WK^rmHk{|%5OR4GLD1mw9Tk+&X-O6X>HzPjzxnR(Jcx$BSHTFR``eN zxA{p()%~`aE%3ezGb(M9#^?N*8GC^OrlcO8_+G1gE55(pH%PS;hcwvpDM;gly!^WC zj66tOdBVDFX+B9!bcxz3T_E--~A@s$O)3eb zH}$=IWwfj3Yh30lW-c31%BP!2q(yEdIPRs8EV_|BZoE0_ ztIkJjNs7b6dOb32O{bBvQp)KewQ!rCN-ZKsBTXDO&3^F)@mpI8o;f_fBSEth#D$`{~dURxLpQxF( zHgVOksOi$H=epyy9VZU2O4bv))&mKSgb(X0iZvt4Z=8?xoQpxI225?l<+(DYB0H;Q z>*MTiE5{9z)?iH9>K<<@Am zwgI6R8qCed6g?eHr%I^w`q*#Oznp8dr|c}m%vl111aq&%T;NpVizKQ(sr>GoJ?edC zJ4(L7$5v*^6c;3C2OEmow-%Wd){qo-U5Bfuef+RU@b>555-Vyb{{RXilhiz}wK}s% z!)k$((c9d2a>7?4)8Bk&^m~1=(=jfmPyQ54ihfYbba~XSbZsLuD7`3@%Tj7FQAPDW zUTGHd3?C}u;E&Lb_Czp6Sqdt)A^+`HmHI<)=4iMekq zW!^?gmh^BBN~=E8jw-E{H8192&cS&_>kIZJQ1YDubvBJ8;QhH4YkFH26fD6BJ zhH~wBnrswu`kRQ0uTGUK*;mPMX4~%7=X!yY&Ooh_u8LrXF-N1xXFN=8rqpB4h)or& zsq#xtS5B-)uZL;t$tRp5+PjxrWl`8N z(oU3ZRdkVCR+9N6^k8!!IG7e{KY0_Vqf7K`j`;&OI>YGl^21qDB7}*r~dx`NJt?*!^dWoVhx46F7CBptisRE@sE1 z0yrQVQ;>=xL-k_Xoj&*lhn=|iNIjI^%@A6TE(LEZLFB4y)bnjVXub7c310`oXsVy$ zoKHd7Qn^XueqC}@MPXg%KZqC#4Ka|~f1D|E?4d#+I(p9Sw$JX!h3uH|k#P9FN&+ki%yMk=` zt;~Ji^Ew9!b?t^z=QO#)e7ixZWSq-3UPZ4@ks43~H7HVuBgWRMnqLu3ujTJde4oH9 zL*HQgr?M96UBdPVekOV~;NJu&^jx(!G^|--+!(7aKcu|+ijWckgG69Jq=;RY&mAL& zV#^e@%=tLSl%eWv(?79DXgcC|jjZ98V92Dwqq3s>Vu;$S3=$TkP|{x(i+`^7$Dp@x z8f?v~#q*qQAZO>&Qddu?v)HLt0x}6-q}5P-4n5uzXqn<$oOsGF&N$qf=`-;O91N`LnhL6j zfDMroYx&}%t4h|js*~MQ$P>~R(W|$#lT5TZhE!5v z;z1ocRZ)BQ#~Jz`vpQzNJR(M|CYrr#iv2i{8j`%@i0y7N!n2O+F($g375PQ%#TBdCB(`@w zCa?Ps-F#P|>1zrpn$P(|f25zs4L3s`PO@odEh8w+ZPfv!RKMnqDwXy7<=)Pc9qDXF z{@iqVLYTzguit!Y6u#RkN1+6Y_#bCn%(r$sqSD@GTL|I`i7%4sx9s3W)(k?`tG7WU z?NgZ!8JP6hE&F)n)e^^??%IK3gBvjN&1ys-ai)nIA=PzESQ)ToO=`8ePNL;p!v;$; z4U+VAca}sc=ciU1vdZ=m@|z}|(ZP#Znin#gWlNT!(w6hUoja&$del~Iu11Hb)dnH@ zL1|XRw5p=te08<6ob%bJh|)q|n}Zvq4Y4scwjjntzoyIQjLfvNtKW=7Cl}rA^TLSB zMTHuiO^XUCU)i^}3Mt+cQ@?%`Q=vuj!ir}#>wdMdt8+2s>pg0Caj5z~hq|P3P(^+p zNZRD2532hM9iv8>+a=%Z{m|3E{M6+=%-+PBojy~J($+FHP6TaQ>P67%5HDWVTy&j2 zjIiB^8LqI?%*d(4s)L@LMFP}_^-4P=A~rV=i_`_t>lbVT;vUZ3v1#>1P~?b4;hQpO z+*-^nM`^gCkByP9Sb!&P5^o=6z!^ zB*!yzjk(Bdqei$FuH}?;;$LpVGIG}E#wgCr!BnVKp64V_`926OrlaO))6<7+xzEZa zR`Z!LbFQgS2a(h{blA3{+uwlQrI9kUz@g?=;K<77&PUha`9sR;L~RdH>BPmch9<$O z5{eFH80_UYRK?+LW6Q~1L!-CK)q*Qy^5rH6reVO${)+~aBUqN2`I<-S>EGvS!}%YK z797j6vk^*#HbThc>&!r0q12!{*Vfgm?#6PzjE>DNRr6OWE@_UAbHwUVjUOW4YmTiq z^S(3MCq7ZuW|{S@)Z;JarrLRABkV=gZmA(Hkv}^U`&8#6hHp7tLp3=HWl6nfBb}Gp z1vl;rDWy6`tJStO^_J($!e}XfIHwOYEjm;+1Lv!mWx!Q&Ez7u0Ky%a-zph*0KWein>kAeve({}!6gK{R?MSP zEa54`E@z`gQ5N**)FeK)=KUCdIn0JeB8@{nNODzWP?;2SEwsUOj_3j-{IKCa$`CHI zC7jsZE_6kX;e2*kbPXf`nhnKAr^^lgQYUC7nq680&Sf;`$Rs*Uu4*ER*sfh8(}uSW zQJ&H!Q1f@CE>DW=f<~H@`q_{HalWserwef97ilfiGip4|78A}Vqm68gfDn1M)V<2s zC)%f!cYTNUi!fwn=KT(QBwvXv#08;IIl6Ux?H}LSjr(Qt@tXI~*I2KZb7I3B)e(ge zV5)2=3XRK7_xU)G*C@}%Jl8kdSfNy}4O8*8=Y-xdj~QAv$3R-hCGvgPfZC-Qh;DDL zvdv2}d>K)xF$j&e-OJ4)^Sad3gh_r!tJB*92BO&B)cb2Q8O+5;nFUxPWM0c|3##v4 zqA~p+R|JLjkCfYLeX%gE$lZ%|fkIsp0~S7Gy^SrA4|8{askcXy1%X>E#zQ4RSk7<{VvRR9jusr3!_o zP~6?UxI>G3aF^o6okEec#ogVC27;B~n&K9q5S#+VixWIR(l77#GwYnY)=los%$eD< z_eR(f@D5hLt<8R$oG)`}65JXG{9GqB`%~;g$ z>bD<9`C6~e;8n@5Z|-1gA8Ss8_ncw%%K14faWOxoVV1mtQ1W1ceVb|XVf$A2{2pAi zBabFlr||C~ukXcUz!)V`?SF;s(ukX5PYk`8Mde-_Jy`LokiZAB4Z~GE)VOwr&mY-o zuR&k&y3&8tl2Pc+p%T*RAySE_zvrLw4C zbx<*7D{mEAk>m4Dg`VKVtUG#r^qZgS{MLDN_|ck5&3*|pUx9g|PF|>;Zqvr=5&($+ zv-D4Rm13(u(L{_R{BAN>N6uM7N<`HsIqz8>)mkCRVlL8v0a^o3RNl@N;$jj}5YbFA z{kF4Jo-;FhSlt?LD}G=O$TX#(N^Mq^`J9-So<)hL3Io^OZxkl5<|0)AUPRTV zB_k|)F&cWTILlUM&Mf-#M;J)Zvzey%&8J$NFH;{rrDu7TBj4;W;yh)fZVUq7lJktZjP}xSO+OHM+$t}OXKHR(-gJGZf(WfLiUb6 zB&nkU$K5|(GhQymp5(lxg_6Rs<9VanK(q-ZBz@_Z-^14f7+yUEIU#BJ@i!ic-b;(br*{2%)L$e@^Q0 zT`X=AjZolklk7_KwX0oQVU;hGGGkgZPY`3YR0$Qe<~_G`^_NO!+-G7dZLtd3vE14q z`|Ho(%jjeM7WQAHmX$=xT_Q;dbBAsp zCmrvep?-P}z&oeIqE;rI$4JX6-5c9E%aSF;2<} z5GM3p&$d^q^RHiJR*>rv)7fs)`#~AWSp*>jvi5%e>#zNvI7)%Eo#sLw|1Dqy$wm>( zCb{&23!GXxU+%SJ-dU1TEWqa!<5;Ra?k-+u^R_+dehcLE^q4VTcDw^9J+dSfQ2g2Z zPz!S&OEAh2HOWJi_VO!#%2BjkjZxL8(^w7;vMYDK5;pbWGGER^{uucR+dpojNhx=N zP0RQ@L&U2En}myrlPT@vKY1x8C>e+H@jjTld80+ZWQXzwJ7JLU@btAnnsJa1Osh^6<~V57 z&r)+!kL4nKAO8w(?!)En1mD;Cy5Ma*hU}={)92BI+z@5~npK}70SjYlYTlwwv+?}1 zB!}j&1OXx*JBiF~bkaimlDCB1BI6FqX)sg4jJ_sjC5>f%o2LMN))DdfYMT9bTD+RQ zV=0JY+z=(P7|U8+`NMGV8HR$o<3;V?<;%oMN_gKVs?~=kS`3r})D^0i;M@7WuT!GY z(g{+pfr`Hnn~%39=)72hB|GLp+ZgC$PBlWr{0!1gjq(NH?!Ue?Ib+rYQ)#3+!Deer4Q%6jZ48$ zPE#$V;$DbEqE{|J9vl5`pp?<@*m=G-&T_QDzlr#Mv;GS^LySY)uH#YiCdEq)ogbFq0^KJ$PlU^E zpj{z+Lo8wQ5gEBsZ+XT|YmqiEB8bZ>)`NsA*^otX?v4Q%Zj#Q~t8cH)Rb$_Bu47C` zM$9bshAwH(DXVdf=mq?+!KalMEg1U@!$lGc=jtU?AN02&P25p>NzDWu>oZ#vk{~pb z0xrA&N>LqhpN>feOuTXxCBK7DU)bi`C35VA2`*QEtG~ zKo$^V-fCZR^%F+QgAN`pnUVx zyhI`NF;iDy#_tMJTwY6a7fW@b0KQHs3UI9Qeio-!IrshEcb+PwT3aP*v5cV|9K#aB zVMeLJuI`>>JsfHx$x0d!Nb?9|9x&_E6@zjJ%)bp0-y4=;6Z)wW=`XmNrHHMQ;=$Oq3o#s=Z5Y93KqIqtP+Danr8ve)DGSso@r72F=5jm3E5T@)2#Xl1LegMYNn-*mGX zB7|%V>m=h*LF={Ms1vm3!d>IxNjMlRt78JwD0lSmUDj%&75}?R)Tc?d-`TKlOASd- zEAvw?-Lu2c?~)wrunab|Kh{mYIk7!Ea=+cenit~`gP4ZNItPsk-&r#8?kRoBM|&F` z^cI@Z*rPCmSl72E}gvZ(vJFx%pPb7UKPHFwuP_Rvm00l)>Q}KmFDx+{~#hy%N!-$ zOE?>$DXHz|kt88$@yVd@N`m81nt6hDR7LyEdH91CWD;9QrJ^x?PbIL2!3B_8_D%Xb zq@p>oQN|scUWM$~FBY~hwyO|MIWqLFiKx>SOEML2fp3GIf=AAOTVx|QTTVoRj@A|n zS`iM@D$FF#Df2(VNDhgexY5xGvVS~zP(rHk+1A1J5tB=&?W)Av={PmNwLb0nUE9zq z73_7Jy6JFJqaa%*$$Ht7b5tH^Y!@fe`+C93Q-@WWi5TnL zP^B1U#v(_hV2Rx%lTA{`6C(zwPes zQhwY1?HAuB{bOqrE8;$cPaW5vA?xw6K85d))4Wzqmp6P3HC4H30ki4v~N*~G1 z38iB_YBN^7{s62a7?!_w2^&x}TldHoC|FrmlTyp1xUs%6g6~K7xJu+)n}rRi1UOG_ z!C(u&-TxC|OQ(I&idTwavF2Wlu>@b9QF4L-Y{}V8(mvq1(d9U%J*}57cm4O`?dD{x zGnjgXR{2+CFg0VkvIDymd%uCbU*Cy@m8Lt96z&19Bv6ImrYfxC0FM;d%%-h5<(6sA z_N<)mURtfLoe%tR;d9-5^fS(pkiNn8`+i1;?#;iKknf|x`re0Aowlxs&#J9I5w0}8 zh;+!nAf%WE=hj=fEJl5$1N)|mhLKJ3%e(9Elj^EFa06}_0NY68IdaIo_J6R6NQv*YoS z9+G$ zSXm)m&~aOZ3BU40{V*eK7D}P2Gt^Dsh*ly{xl3~xCOsUkHD=3?m!uTW@t?l!5tG3@ zJX&dutplbxj%-{Kf|TWbF?wxLIA?5LnnrH4eynh!IyiNV^3R>Q6iS4Wim)XQE2h@W zKUd^6YhDEuiJUBj>`4^YH<4B6(fIhgsV$(T-iol|ul+LUtaFzQ3^}B{{JPD$H*%9r z2#|2x&XyA+7iqfcAk;MQAfJuBa6cVb`)+Y6L{Sl1nPWO2T&GuIo&sJbi8E)C)YY$1 z{S)xVx2Qc$|A)1sy-`y^T*i(!Y1=4d+bbO)kBfD`Q4vu)9#mwKXSyQSB;e=>8bSDt znFr5&j3oKQ0P!dAMw+Zn$P!4;@)>7ARglTZ`~YF z8H#0&xo=!dgZAd0m(IWb#9%c$y{0I7XaZ`QE2d>elMLWOlIVo>Pz1%-1l&G)|b|ge%w}+QKZq zhts|Qta|dxL5eqM0y<9g3HiZWJM?*@u`j_|a!kI}dALa(OI(7(%iN?f6=8>P`HzMc z8|s(X3kEk^L)xXynnue+HZjL+npC)Cqq5ihq!^0}bNp=FpQ{IV|3TE-ldsI#5`tNd*~ z-F=c_Md58$k(*!9@lH|KX|~X)QbXoHtMPz0OZqK~Zl)MTc;~N{0kd+k-!K2}VJ4uO zJp4XeibYv)H|QO{WYXIg;0W^3dmkgZEZP}6C$9v}l14UMMWMO+f9CvT&YfmP+$oB? zn`s0@U~dX*{dB9#a-9nqpj}A}>L5__RCrq+136#zNEVehyJ~P4VTN~fXO4$&Gaho* z(aVHW9srXmXNvI8Ed=dj8Woq4e3&&pyzghtniZFdOH3v2fsZep=2_Cdvdn`FV&R^Q z@Kj6hT2(kQ1V}j*#1blvhj1OA@6{wX-^Yn_SXx?@yp)cvZ|%`abY)y3(3Kq0#y->D%RS*l4sw#f1*w(vr#^S3aMnt=t4fS^yyg=nG)2| z&#_yRBMje{c#23JhA$WnYLU3;K`kf^T31|TF8rW`w09_%49L=95~VbTP|*(8ZtsIc zPa5(K;`O3``)j?BG?m633g3!XR?Ut@bFEma%;kvXsE{e_~dy>%O@ zoSD)6H$PVRZ`qFA$@5DQYz>L341?2e+ZqlQ^6pB{x1F{rBweRvE-3bJ_uMC1VucTc zsJ({?)WJAlK1mUOJ!1y#(9q7fDIq$EYysUPiI;iq`lj(Z*kjcI5#SL{p}f6Js($NI zL0QjJA$!#iVUYXwmJj0xN5o!p;khu5CW%PlLX7S6{oB&aAWw{Mog5U3%jpWjl!w81Y?2M4BdBfj#nhb zssv?VSl>p3YH>9M5T9gFR0!gEcvwfi|A zXR3ASnK=_J7jyo)6NZKr8o}4^%GYWuPDZ6FlH%MIu3}hS3`#2a&&L z@f@2yUWe=bpvu2FJPwsGooKqUOSbYCsefp2L<|a!zFMwXRS8sDydiQVrFqLAR z5-*L>SlT?gUerndI?LhE^T*5{#&lOP#t@69M_OtB$smz~t_EN}3XkJJClwAr2W01N zLP=i7eM_<|c>3@m3qvweIUHp6#m{^tJ%bL24B!jTm zeO+!2Hc8?YzaO^rj0iEr@iL=2_#;$T*uI>=4fbV|fVAh;!nZhgf(qup(!;m#iyk+1Zkux=tYg{b z>`E`sIKWtrhJts{Fm|1lJ5Sl^d<;fn?4d)-KkOh=DE!eV>v2RDhl%~m%bf?+vI^o$ z)Y32yYAN17>~D!sxP@sJqTS%@QPh829jxW>)k{S0k?haZr0rcnjc?t$Vzw!>%PbTw zVM8+vez-+>9rj%4wxh4vNM@@^lmVB!g@NcnYV zukIgfkM+MxGaRVK0;?z90!#c&Xns2Ta(@N5`Fkk5f%0T^jrd~*dc^_sL_9|mV4qfi z^H7%-4Qi|0KG`6+-;~o)6y_?s4&N8jANYqw6q$QpSkVljer}*19$fW!g1|Wxx_&;N zYJ3yE&(jcX#p-IfKjY>-RN6hWEIP2+cmM6}5#a9YWxQu#=$31;GDErwtA}8tZGlv< z*E@GPo%iCP$9HivkFws3#o=RY`oNke5VeD`-W$pIQiRNGVn_qe}cikwC)HWa;-0qyWOxj28hU31$N<;CA%rZl6cmMbbJiHWJ z1*Hu=JD(i1WjEf$l}$^ZVkIxo|A#e$ULb0Gc*(aWoxM-88)&r^(VtbLSBfipAr7uQ zfdj@4T-TyB=+|;Q{Xs|UQ`};kpJF{l_^zoWNxoqHpk8%uY2Dc}TLK2y-L;*7rYwQ| z#l)-o z!TYkv)wWaEys-PttW!h8Ivc})8+-pe$?L8vRmKj#t4D3d*3#`8v`%zQ@T|SaCUs2R zNYoR~LfwRg$6TtrVG#}c2-^M190>osr>qebnKc@i z@ypq-=0PzIKTvAx*|d1I$Qz5)>GxNhlJ#5_8_KMBE%f_H)jFeWxmuGB_P*1Al;82= z0-S6SV&UxWa@DcsXL24-0)C+p4y})L`=u^w5(2Xl@?VtSvN)5{%NY}mcCkGL&L=^ZgP$|$4!qLoRt2Cz#BA%niXDfh3_hn+)Et8mcP9>wx#a?OZX;zFpdrX3&s>(x0}sYM~oP^Ng=p ztA2g}$AQDr7l(6zYi;9NbqDm#aezPpuzKK_(_Eyzn|vxEf8~PV+^w5?Gz$J$GTfTH zt}XLtTtA7sMzRbJ|6B}2<1aV@95M~{_ z7=Z&gd`3(26-^RL!2}nkSJzK^ggx(>F?Aw6K#zm;Gk;?`o1&Px!xAP)`iM5}5%_A= zblf&B$h*0Hm^*t17o+GqrZ>($yqW+6g{^EN`Pt(bJkQ$ua7D9)fI*LBd z-+e*HJJ36!ZgoCCu$cL33=(lwgIgvll8Ifp^!u|^13knu<4a&~2Fj>VZgVl3Wr@?E z99P5|W-g z1OQ9G)SSt4v2Tjy+!mn9p4&Q+i%%Hu-H1RXjHs}zciE8h1Hnc1+Ml*(yC%s3a6pdg zO2dFn=Rd5u?Pn3zH~RZ;wwjZx{$X)O{lj|sC?|tRc9b+ZxXZ8eCNu^B(xtY6zdB2{ ztzl}wa*X0cSJN(8$@$`!=EZ#fgdq)bN_Q$^uAyT-;0`p47DZ5V*|5)s&VZv&r!(rN z$nStvs@_(U!XKDLj9+nUdqDL~vc%b-a&@4)h_r6`R7@19$P%P~df{N2mnkOs%PgqH zkXXH>y|kuv)SWA|olTq%N?(iFoDrBPw~tgiGT55NwJ0h0MDwg9)qzf-pd! zF1C|S1nmS1#*gyG;Q3#&8{;1@d9d*gDOVa;VQ|furLaAZs>L3lk& zC|;n1@Aaevz4b0GjcWZlT8S!~E3>HjWU{il=4HQhy+0QtPN^s-X4GWhZ06Efg>IXU zOxGvn(GjE{w`4fquRpwdZYRpFhOMd3jue)MeG7ms2 zyH8Sqf45cM*lYXLSSPuwaksyQmx=V=9KM;~-~D>yO-JA6Zf4njxqnwMq@8uKd@?HQ zGyTN(6TVT4PQ7F87#&Z9=)JYWt}!2XwUQY%TV`7p&iNX}e5+4E?;?k>#ZIuuWZGRE zLM>(A;qK~plc|gT^N;HA=Lr1hug_O?*T`vut_`sr2W$kHW)t)4$lox;?f*@y4=o%lP%@ki_iN7 zhvYIDXPtrj&4D+=3uSrH(SsMdR)yCeGCyBcC2*#gl5I|FvaR0vZmlvDse7d7x@3z* ztfUMy+EbYJ%R`6K5;KX%_>=Z4=6RQ-zC3_qHOu2n&2vGsvtW4o~V16p;_yJ$}gZDjlp`A3MDjngUlK6Ohn8B)HQW~(4B zpNC>;s4~9MuR*P|I^Iw+!;}G|7TjT7upmb*UYzNhh|epTlBR0rWg$lAngK55Di&`X z6XC(ho|$zySJCy1d$;2_Icv_;OP%%#2AbZ8WG2kzVs1O2WGmq6)Q67|A1R_?`m3vQ zul%g--@R5)9Rn^bJw7&i0c`baZ%PT7!m@BkiA2@1TKMX_-$|E_y=h)ZjpuepzF#G6 zJt6=xQu!g{@qGbFhs#GB1dtt-nR9!nUEH*w%-iG*hgF)(Ik_ozmFowB2rH+A=QF_H zx4or@TvKJC8zB4T{=?d?Urdq%9; zh#rp$FbY>BQc}G|I(hA>C+`NYOse~p?KtEIT8JXr=#FKL8IPsc%jRt8(3CHq0UU6) zN@DhTD%KNC$YN&AUq+TYJsoi%Iy{4;J5kkH3H*i8?|a&5+T5cF)E$>A%OP=!X(2mV zUuldoK}Zlk=ae4bF}e7Xp0hSj4()nD*oYnHW3yaPqD=nANVW#u${a9x8i}&B%Mo;c zx(R0TClfhYQ93r_7E1HE%ibXjUCEk=C2iGQ{xTS0*nZMitLaex)qR%)@L_AO)F4mf zSye`6m^M4V$y~SP3;2C|;WmlEe9dxry%4iUT>nzM`^{XLKm6PE#o*L(E~#**Tt!R( zBWcbM^J`)u7w76w-sCKCk+7M6SaFv8v#*zOGoY`|2n^fB(R5*|}fnUO{yzA)LQRdAcSZ{qN3exal9%3AM5@ow2 zp#kqCE2>L>eSeyZ{|mLbphUW|o#rTd!4nr1IGt1|$o(r%J$Oftu>2`&%P$e!HwOk* zV{tG2PVSp>xqbOhs6;B&>$U$}#Zl>Pc$9GQvuD5@mUSo16YC|T@BVyi&BdPOgw?e> z$*yX7!Y=}R+}H)z=xhkZ%4=sfpfhoMoO7Dw3Rd&HO>=UI7$BYYo7k*`9^g9XFG7U_sPT~k*-+~!4 zNt~O8XgWA}T$;OJ?#qi5wUjnHa03HWo;$_s6hzsnyf?X@QDbT9twD!j%Wka2N;S*5 zO`MDK4>=aaD5yVC-r+3ytRZ!X3XydK`XzwFW^!M9sl?en1biE1(%e71Y7K>oS=W7y zJia9QJO@}5l2m!xUco+_Q95*YU@^p;G4A;g80z+eU-(Vj9N+||=lkVRk7FKdr|*5* zyVk3P+TxxV4RGJyH==8zjW#(6^AMb^Pi%oX@R3>OGMA!)FwZ~wV0ddszq2;O6xDV?pJBk(M2p` zL`D6YB->YSlgR|CPd4@@d-jW_I?cb;4N78#To2JcfR_0?QzfKD}$ozoCz z+6uel$E{lE>u!y}9q~*qF1)nJ-R^L`o_|<>&)aeqfDZ?k@oA5u2qHa$NEeb|4eus{ z{k&s(DUCpL7(?B}^}%Jf`T5A;B1I9tAtzTF#k(Jpho4)|5GG?CJ%~y_IlFz5vODvw zK4|JCU8gC|e`URXnLP z3$+}@4S$&Rk&CG3A}C>)tG;zL`Sx9n-_#u)O(7YLTF!b8x-IwaKhGbG*?1XUsbb*x zUOdk{4f;Uu*+wYif%taQBvZtsJ{qmPV{a^p5vE+Iya z9h-PDJ~W}z06Kk0>MTh-qlV$){9OYN-wMY40IA9j03^m==3aKw?=KSoyudFiRtZ5R zYI=a*!&2st`MV5xesrQdu);sLGUKT{3wCY(U!E$3GkcS0Pk>%}dm?-F$|pU$%<*#Ho+cpx>`HveMqjMie7EQCC^-aH_2#w@~SiFgGk71Qm9yLDe zrL)JBWE?CmoT#nGJv-Ugm%myx+*l{+RTSPEfMmgKmZy2pC`zmOu#NE#hyUBOd-F)X zuN#f62u`UX$bD78yS`Jsqq0i9*}bvLoM@DD*D&P({2J!L!LU&=FO~stcuZC0`0F7`^i1UDkLK476zM-Gj`6lI;Py}nCMVyH@_ zN>eFn2cyIJb@g%Em<_N(Bv?J>=9YDawEBk?K<4?NbrA`lg9Z_qp8LR@^1R0r6%$O@ zR+Y%)`+8==-u`H;Lj8VQQyDk6f!*BhK+#_!fy4K%d*S7%CE7^r_?o^`@VzC^aN_36 zc$(7m7RsRsZ#Cj#3ccI;%SLj@LTDCJOYARtESDebGoNr{ zHVxU}kg1zNrAu1lB3YPwp*W*=V^8fjwPPapcSGF#Zt1IL3;esKj=NRm{*#vTuIBA9 z79=Opxt@;Q=rj+J>@-iFbH+Kk!-%p9fa$2jT^S0DkJMQw6b;l943>07PcW@i&n4$) zS6SJ|-KBtNE3#Bqvu$RSA(hgd5y#a5z`VSXdH(p}H8qO6;(=cveqb8Mg3a7wh?KN7 zLy4@BB%oz+=K~PDG&#oNJN%LP2Fg)j@nVzOj)biCXARR<+#^pvSH)wez)W`3A*C|e zf6{hsa@KaCUCQmxA=#jEEGGmbg;5hk8j+TTMBkp1)(t{1?JF6PKy`f?X` z?kh_(9bF@c(Serea`(sI#3o@aa)ZqOuquQ%x_}wS?Vg(>=AUbjVOuLN7V59jNm(ch z@d9!aS_sqNiCC~%8Aom8#*Qt+70~bj^EZ!C+o%x!hqZ@PryfO9ZXK}HIkX5E z`k?a#!jjVpO}hC@^OD;D2%L=rB@CmlI8K)AIzG~9!lIAQp@+{OU9@C_BI&+3;hcVy z=bu%0l!#B=4D^hq{ad#HK}WCc<;2h9krmxzAWXO3I4b}nmQ=BI)dA^`9q%vtxmDv82506tu*DtH? z+GXXg`2a;Sr$1R+^>wk}&HaP<4I8HB*m@RD`7Od5N?F>wUs8pG3uEEssEX@h%HE)M z4dmiD%exO64L9{X{SVV|#TRmV;d3p_DwSs*_YlK!NwkVs?LXfvhw?NQneyY$XNQ zufiyk{5GXF^cX-!N2{dujKk@APa6o#P=9P?l#{iL)nkS1(KL6H7%R4@s~cMIJnOw{ z5@R>^6F8x+;k8=R`d_FKyVtM5|6GEl?>_v)Qe`(>DRxYt z^B9#@v+cb7k(!j45@$C`k_FDz#a3SORa5NRNW<*fd2+I*xsYos7YoNV_bij$r;=Z5 z7BKanSX+^});OL|meHKqn!PGtMenmd;#!VMbJqoWZ9$am-@^wz^Sw$7?*-MxIS{1h zVXFjS-D~CP@%K)(B$(?~)3SBSLvfg>bz{w&MU7!dRcf37G$}xv><0@Er}K?Bl=-T7 ziBU<@=5jsJkns2$hcp%l{Mnpf7qSRh;Y|FH+~(M0Wh%ut!^n_H#r0&@}PnhA_Wkcxy!fGce42<Q)1J4}~&MhuU`hg8}CTkuPCL&X+%m zu4i-U1VOO$13^J|iN({JNgso6+}XW%pf2uEP5EbSbYp{o?-7lFWEvs>J|{qyr7dKq zySx*6Jk+JxEgtqGOfYcX`^Ali?yXY8`A$+++v}LJ5E-GXOLhNs8thmed8$g}r>$@`zjrxH?>ZLGsIMM2

vB++2{?ZHY|@ZXQKSAJmPoDo$^X9k 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

  • tX8I(9Q}uqRyX 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%0DGi*2RSDtZxJJm74fwoDPHT0y1Si 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�S#|T~ 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 literal 0 HcmV?d00001 diff --git a/usr/fbcp-ili9341/freeplaytech_waveshare32b.h b/usr/fbcp-ili9341/freeplaytech_waveshare32b.h new file mode 100644 index 0000000..532482d --- /dev/null +++ b/usr/fbcp-ili9341/freeplaytech_waveshare32b.h @@ -0,0 +1,24 @@ +#pragma once + +// Data specific to the Waveshare32b display, as present on FreePlayTech's CM3/Zero devices (https://www.freeplaytech.com/) +#ifdef FREEPLAYTECH_WAVESHARE32B + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 22 +#endif + +#if !defined(GPIO_TFT_RESET_PIN) +#define GPIO_TFT_RESET_PIN 27 +#endif + +// On FreePlayTech GBA devices, a part of the screen is hidden by the bezels, since the GBA has a 2.8" screen surface area, but a 3.2" display is enclosed inside the case. +// The hidden area is placed under the left edge of the display horizontally, and under top and bottom edges of the display vertically, so reduce those out from the drawable area. +// Effective display area is then 320-18=302 pixels horizontally, and 202 pixels vertically (in landscape direction). + +// The meaning of top/left/right/bottom here should be interpreted as the display being oriented in its native direction (which is portrait mode for ILI9341, 240x320 direction). +#define DISPLAY_NATIVE_COVERED_TOP_SIDE 18 +#define DISPLAY_NATIVE_COVERED_LEFT_SIDE 9 +#define DISPLAY_NATIVE_COVERED_RIGHT_SIDE 29 +#define DISPLAY_NATIVE_COVERED_BOTTOM_SIDE 0 + +#endif diff --git a/usr/fbcp-ili9341/gpu.cpp b/usr/fbcp-ili9341/gpu.cpp new file mode 100644 index 0000000..2f94fd0 --- /dev/null +++ b/usr/fbcp-ili9341/gpu.cpp @@ -0,0 +1,510 @@ +#include // bcm_host_init, bcm_host_deinit + +#include // FUTEX_WAKE +#include // SYS_futex +#include // syslog, LOG_ERR +#include // fprintf +#include // floor + +#include "config.h" +#include "gpu.h" +#include "display.h" +#include "tick.h" +#include "util.h" +#include "statistics.h" +#include "mem_alloc.h" + +bool MarkProgramQuitting(void); + +// Uncomment these build options to make the display output a random performance test pattern instead of the actual +// display content. Used to debug/measure performance. +// #define RANDOM_TEST_PATTERN + +#define RANDOM_TEST_PATTERN_STRIPE_WIDTH DISPLAY_DRAWABLE_WIDTH + +#define RANDOM_TEST_PATTERN_FRAME_RATE 120 + +DISPMANX_DISPLAY_HANDLE_T display; +DISPMANX_RESOURCE_HANDLE_T screen_resource; +VC_RECT_T rect; + +int frameTimeHistorySize = 0; + +FrameHistory frameTimeHistory[FRAME_HISTORY_MAX_SIZE] = {}; + +uint16_t *videoCoreFramebuffer[2] = {}; +volatile int numNewGpuFrames = 0; + +int displayXOffset = 0; +int displayYOffset = 0; +int gpuFrameWidth = 0; +int gpuFrameHeight = 0; +int gpuFramebufferScanlineStrideBytes = 0; +int gpuFramebufferSizeBytes = 0; + +int excessPixelsLeft = 0; +int excessPixelsRight = 0; +int excessPixelsTop = 0; +int excessPixelsBottom = 0; + +// If one first runs content that updates at e.g. 24fps, a video perhaps, the frame rate histogram will lock to that update +// rate and frame snapshots are done at 24fps. Later when user quits watching the video, and returns to e.g. 60fps updated +// launcher menu, there needs to be some mechanism that detects that update rate has now increased, and synchronizes to the +// new update rate. If snapshots keep occurring at fixed 24fps, the increase in content update rate would go unnoticed. +// Therefore maintain a "linear increases/geometric slowdowns" style of factor that pulls the frame snapshotting mechanism +// to drive itself at faster rates, poking snapshots to be performed more often to discover if the content update rate is +// more than what is currently expected. +int eagerFastTrackToSnapshottingFramesEarlierFactor = 0; + +uint64_t lastFramePollTime = 0; + +pthread_t gpuPollingThread; + +int RoundUpToMultipleOf(int val, int multiple) +{ + return ((val + multiple - 1) / multiple) * multiple; +} + +// Tests if the pixels on the given new captured frame actually contain new image data from the previous frame +bool IsNewFramebuffer(uint16_t *possiblyNewFramebuffer, uint16_t *oldFramebuffer) +{ + for(uint32_t *newfb = (uint32_t*)possiblyNewFramebuffer, *oldfb = (uint32_t*)oldFramebuffer, *endfb = (uint32_t*)oldFramebuffer + gpuFramebufferSizeBytes/4; oldfb < endfb;) + if (*newfb++ != *oldfb++) + return true; + return false; +} + +bool SnapshotFramebuffer(uint16_t *destination) +{ + lastFramePollTime = tick(); + +#ifdef RANDOM_TEST_PATTERN + // Generate random noise that updates each frame + // uint32_t randomColor = rand() % 65536; + static int col = 0; + static int barY = 0; + static uint64_t lastTestImage = tick(); + uint32_t randomColor = ((31 + ABS(col - 32)) << 5); + uint64_t now = tick(); + if (now - lastTestImage >= 1000000/RANDOM_TEST_PATTERN_FRAME_RATE) + { + col = (col + 2) & 31; + lastTestImage = now; + } + randomColor = randomColor | (randomColor << 16); + uint32_t *newfb = (uint32_t*)destination; + for(int y = 0; y < gpuFrameHeight; ++y) + { + int x = 0; + const int XX = RANDOM_TEST_PATTERN_STRIPE_WIDTH>>1; + while(x <= gpuFrameWidth>>1) + { + for(int X = 0; x+X < gpuFrameWidth>>1; ++X) + { + if (y == barY) + newfb[x+X] = 0xFFFFFFFF; + else if (y == barY+1 || y == barY-1) + newfb[x+X] = 0; + else + newfb[x+X] = randomColor; + } + x += XX + 6; + } + newfb += gpuFramebufferScanlineStrideBytes>>2; + } + barY = (barY + 1) % gpuFrameHeight; +#else + // Grab a new frame from the GPU. TODO: Figure out a way to get a frame callback for each GPU-rendered frame, + // that would be vastly superior for lower latency, reduced stuttering and lighter processing overhead. + // Currently this implemented method just takes a snapshot of the most current GPU framebuffer contents, + // without any concept of "finished frames". If this is the case, it's possible that this could grab the same + // frame twice, and then potentially missing, or displaying the later appearing new frame at a very last moment. + // Profiling, the following two lines take around ~1msec of time. + int failed = vc_dispmanx_snapshot(display, screen_resource, (DISPMANX_TRANSFORM_T)0); + if (failed) + { + // We cannot do much better here (or do not know what to do), it looks like if vc_dispmanx_snapshot() fails once, it will crash if attempted to be called again, and it will not recover. We can only terminate here. Sad :/ + printf("vc_dispmanx_snapshot() failed with return code %d! If this appears related to a change in HDMI/display resolution, see https://github.com/juj/fbcp-ili9341/issues/28 and https://github.com/raspberrypi/userland/issues/461 (try setting fbcp-ili9341 up as an infinitely restarting system service to recover)\n", failed); + MarkProgramQuitting(); + return false; + } + // BUG in vc_dispmanx_resource_read_data(!!): If one is capturing a small subrectangle of a large screen resource rectangle, the destination pointer + // is in vc_dispmanx_resource_read_data() incorrectly still taken to point to the top-left corner of the large screen resource, instead of the top-left + // corner of the subrectangle to capture. Therefore do dirty pointer arithmetic to adjust for this. To make this safe, videoCoreFramebuffer is allocated + // double its needed size so that this adjusted pointer does not reference outside allocated memory (if it did, vc_dispmanx_resource_read_data() was seen + // to randomly fail and then subsequently hang if called a second time) +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE + static uint16_t *tempTransposeBuffer = 0; // Allocate as static here to keep the number of #ifdefs down a bit + const int pixelWidth = gpuFrameHeight+excessPixelsTop+excessPixelsBottom; + const int pixelHeight = gpuFrameWidth + excessPixelsLeft + excessPixelsRight; + const int stride = RoundUpToMultipleOf(pixelWidth*sizeof(uint16_t), 32); + if (!tempTransposeBuffer) + { + tempTransposeBuffer = (uint16_t *)Malloc(pixelHeight * stride * 2, "gpu.cpp tempTransposeBuffer"); + tempTransposeBuffer += pixelHeight * (stride>>1); + } + uint16_t *destPtr = tempTransposeBuffer - excessPixelsLeft * (stride >> 1) - excessPixelsTop; +#else + uint16_t *destPtr = destination - excessPixelsTop*(gpuFramebufferScanlineStrideBytes>>1) - excessPixelsLeft; + const int stride = gpuFramebufferScanlineStrideBytes; +#endif + failed = vc_dispmanx_resource_read_data(screen_resource, &rect, destPtr, stride); + if (failed) + { + printf("vc_dispmanx_resource_read_data failed with return code %d!\n", failed); + MarkProgramQuitting(); + return false; + } +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE + // Transpose the snapshotted frame from landscape to portrait. The following takes around 0.5-1.0 msec + // of extra CPU time, so while this improves tearing to be perhaps a bit nicer visually, it probably + // is not good on the Pi Zero. + for(int y = 0; y < gpuFrameHeight; ++y) + for(int x = 0; x < gpuFrameWidth; ++x) + destination[y*(gpuFramebufferScanlineStrideBytes>>1)+x] = tempTransposeBuffer[x*(stride>>1)+y]; +#endif + +#endif + return true; +} + +#ifdef USE_GPU_VSYNC + +void VsyncCallback(DISPMANX_UPDATE_HANDLE_T u, void *arg) +{ + // If TARGET_FRAME_RATE is e.g. 30 or 20, decimate only every second or third vsync callback to be processed. + static int frameSkipCounter = 0; + frameSkipCounter += TARGET_FRAME_RATE; + if (frameSkipCounter < 60) return; + frameSkipCounter -= 60; + + __atomic_fetch_add(&numNewGpuFrames, 1, __ATOMIC_SEQ_CST); + syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAKE, 1, 0, 0, 0); // Wake the main thread if it was sleeping to get a new frame +} + +#else // !USE_GPU_VSYNC + +extern volatile bool programRunning; + +void *gpu_polling_thread(void*) +{ + uint64_t lastNewFrameReceivedTime = tick(); + while(programRunning) + { +#ifdef SAVE_BATTERY_BY_SLEEPING_UNTIL_TARGET_FRAME + const int64_t earlyFramePrediction = 500; + uint64_t earliestNextFrameArrivaltime = lastNewFrameReceivedTime + 1000000/TARGET_FRAME_RATE - earlyFramePrediction; + uint64_t now = tick(); + if (earliestNextFrameArrivaltime > now) + usleep(earliestNextFrameArrivaltime - now); +#endif + +#if defined(SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES) || defined(SAVE_BATTERY_BY_SLEEPING_WHEN_IDLE) + uint64_t nextFrameArrivalTime = PredictNextFrameArrivalTime(); + int64_t timeToSleep = nextFrameArrivalTime - tick(); + const int64_t minimumSleepTime = 150; // Don't sleep if the next frame is expected to arrive in less than this much time + if (timeToSleep > minimumSleepTime) + usleep(timeToSleep - minimumSleepTime); +#endif + + uint64_t t0 = tick(); + + bool gotNewFramebuffer = SnapshotFramebuffer(videoCoreFramebuffer[0]); + // Check the pixel contents of the snapshot to see if we actually received a new frame to render + gotNewFramebuffer = gotNewFramebuffer && IsNewFramebuffer(videoCoreFramebuffer[0], videoCoreFramebuffer[1]); + if (gotNewFramebuffer) + { + lastNewFrameReceivedTime = t0; + AddHistogramSample(lastNewFrameReceivedTime); + } + + uint64_t t1 = tick(); + if (!gotNewFramebuffer) + { +#ifdef STATISTICS + __atomic_fetch_add(&timeWastedPollingGPU, t1-t0, __ATOMIC_RELAXED); +#endif + // We did not get a new frame - halve the eager fast tracking factor geometrically, we are probably + // near synchronized to the update rate of the content. + eagerFastTrackToSnapshottingFramesEarlierFactor /= 2; + continue; + } + else + { + // We got a new framebuffer, so linearly increase the driving rate to snapshot next framebuffer a bit earlier, in case + // our update rate is too slow for the content. + ++eagerFastTrackToSnapshottingFramesEarlierFactor; + memcpy(videoCoreFramebuffer[1], videoCoreFramebuffer[0], gpuFramebufferSizeBytes); + __atomic_fetch_add(&numNewGpuFrames, 1, __ATOMIC_SEQ_CST); + syscall(SYS_futex, &numNewGpuFrames, FUTEX_WAKE, 1, 0, 0, 0); // Wake the main thread if it was sleeping to get a new frame + } + } + pthread_exit(0); +} + +#endif // ~USE_GPU_VSYNC + +// Since we are polling for received GPU frames, run a histogram to predict when the next frame will arrive. +// The histogram needs to be sufficiently small as to not cause a lag when frame rate suddenly changes on e.g. +// main menu <-> ingame transitions +uint64_t frameArrivalTimes[HISTOGRAM_SIZE]; +uint64_t frameArrivalTimesTail = 0; +int histogramSize = 0; + +// If framerate has been high for a long time, but then drops to e.g. 1fps, it would take a very very long time to fill up +// the histogram of these 1fps intervals, so fbcp-ili9341 would take a long time to go back to sleep. Introduce a max age +// for histogram entries of 10 seconds, so that if refresh rate drops from 60hz to 1hz, then after 10 seconds the histogram +// buffer will have only these 1fps intervals in it, and it will go to sleep to yield CPU time. +#define HISTOGRAM_MAX_SAMPLE_AGE 10000000 + +void AddHistogramSample(uint64_t t) +{ + frameArrivalTimes[frameArrivalTimesTail] = t; + frameArrivalTimesTail = (frameArrivalTimesTail + 1) % HISTOGRAM_SIZE; + if (histogramSize < HISTOGRAM_SIZE) ++histogramSize; + + // Expire too old entries. + while(t - GET_HISTOGRAM(histogramSize-1) > HISTOGRAM_MAX_SAMPLE_AGE) --histogramSize; +} + +int cmp(const void *e1, const void *e2) { return *(uint64_t*)e1 > *(uint64_t*)e2; } + +uint64_t EstimateFrameRateInterval() +{ +#ifdef RANDOM_TEST_PATTERN + return 1000000/RANDOM_TEST_PATTERN_FRAME_RATE; +#endif + if (histogramSize == 0) return 1000000/TARGET_FRAME_RATE; + uint64_t mostRecentFrame = GET_HISTOGRAM(0); + + // High sleep mode hacks to save battery when ~idle: (These could be removed with an event based VideoCore display refresh API) + uint64_t timeNow = tick(); +#ifdef SAVE_BATTERY_BY_SLEEPING_WHEN_IDLE + // "Deep sleep" options: is user leaves the device with static content on screen for a long time. + if (timeNow - mostRecentFrame > 60000000) { histogramSize = 1; return 500000; } // if it's been more than one minute since last seen update, assume interval of 500ms. + if (timeNow - mostRecentFrame > 5000000) return lastFramePollTime + 100000; // if it's been more than 5 seconds since last seen update, assume interval of 100ms. +#endif + +#ifndef SAVE_BATTERY_BY_PREDICTING_FRAME_ARRIVAL_TIMES + return 1000000/TARGET_FRAME_RATE; +#else + if (histogramSize < 2) return 100000; // Frame histogram needs to have at least a few entries to bootstrap, if there's very few, either refresh rate is low, or fbcp-ili9341 just started + + // Look at the intervals of all previous arrived frames, and take some percentile value as our expected current frame rate + uint64_t intervals[HISTOGRAM_SIZE-1]; + for(int i = 0; i < histogramSize-1; ++i) + intervals[i] = MIN(100000, GET_HISTOGRAM(i) - GET_HISTOGRAM(i+1)); + qsort(intervals, histogramSize-1, sizeof(uint64_t), cmp); + + // Apply frame rate increase discovery factor to both the percentile position and the interpreted frame interval to catch + // up with display update rate if it has increased + int percentile = (histogramSize-1)*2/5; + percentile = MAX(percentile-eagerFastTrackToSnapshottingFramesEarlierFactor, 0); + uint64_t interval = intervals[percentile]; + // Fast tracking #1: Always look at two most recent frames in addition to the ~40% percentile and follow whichever is a shorter period of time + interval = MIN(interval, GET_HISTOGRAM(0) - GET_HISTOGRAM(1)); + // Fast tracking #2: if we seem to always get a new frame whenever snapshotting, we should try speeding up + interval = MAX((int64_t)interval - eagerFastTrackToSnapshottingFramesEarlierFactor*1000, (int64_t)1000000/TARGET_FRAME_RATE); + if (interval > 100000) interval = 100000; + return MAX(interval, 1000000/TARGET_FRAME_RATE); +#endif +} + +uint64_t PredictNextFrameArrivalTime() +{ + uint64_t mostRecentFrame = histogramSize > 0 ? GET_HISTOGRAM(0) : tick(); + + // High sleep mode hacks to save battery when ~idle: (These could be removed with an event based VideoCore display refresh API) + uint64_t timeNow = tick(); +#ifdef SAVE_BATTERY_BY_SLEEPING_WHEN_IDLE + // "Deep sleep" options: is user leaves the device with static content on screen for a long time. + if (timeNow - mostRecentFrame > 60000000) { histogramSize = 1; return lastFramePollTime + 100000; } // if it's been more than one minute since last seen update, assume interval of 100ms. + if (timeNow - mostRecentFrame > 5000000) return lastFramePollTime + 100000; // if it's been more than 5 seconds since last seen update, assume interval of 100ms. +#endif + uint64_t interval = EstimateFrameRateInterval(); + + // Assume that frames are arriving at times mostRecentFrame + k * interval. + // Find integer k such that mostRecentFrame + k * interval >= timeNow + // i.e. k = ceil((timeNow - mostRecentFrame) / interval) + uint64_t k = (timeNow - mostRecentFrame + interval - 1) / interval; + uint64_t nextFrameArrivalTime = mostRecentFrame + k * interval; + uint64_t timeOfPreviousMissedFrame = nextFrameArrivalTime - interval; + + // If there should have been a frame just 1/3rd of our interval window ago, assume it was just missed and report back "the next frame is right now" + if (timeNow - timeOfPreviousMissedFrame < interval/3 && timeOfPreviousMissedFrame > mostRecentFrame) return timeNow; + else return nextFrameArrivalTime; +} + +void InitGPU() +{ + // Initialize GPU frame grabbing subsystem + bcm_host_init(); + display = vc_dispmanx_display_open(0); + if (!display) FATAL_ERROR("vc_dispmanx_display_open failed! Make sure to have hdmi_force_hotplug=1 setting in /boot/config.txt"); + DISPMANX_MODEINFO_T display_info; + int ret = vc_dispmanx_display_get_info(display, &display_info); + if (ret) FATAL_ERROR("vc_dispmanx_display_get_info failed!"); + +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE + // Pretend that the display framebuffer would be in portrait mode for the purposes of size computation etc. + // Snapshotting code transposes the obtained framebuffer immediately after capture from landscape to portrait to make it so. + SWAPU32(display_info.width, display_info.height); + printf("DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE: Swapping width/height to update display in portrait mode to minimize tearing.\n"); +#endif + // We may need to scale the main framebuffer to fit the native pixel size of the display. Always want to do such scaling in aspect ratio fixed mode to not stretch the image. + // (For non-square pixels or similar, could apply a correction factor here to fix aspect ratio) + + // Often it happens that the content that is being rendered already has black letterboxes/pillarboxes if it was produced for a different aspect ratio than + // what the current HDMI resolution is. However the current HDMI resolution might not be in the same aspect ratio as DISPLAY_DRAWABLE_WIDTH x DISPLAY_DRAWABLE_HEIGHT. + // Therefore we may be aspect ratio correcting content that has already letterboxes/pillarboxes on it, which can result in letterboxes-on-pillarboxes, or vice versa. + + // To enable removing the double aspect ratio correction, the following settings enable "overscan": crop left/right and top/down parts of the source image + // to remove the letterboxed parts of the source. This overscan method can also used to crop excess edges of old emulator based games intended for analog TVs, + // e.g. NES games often had graphical artifacts on left or right edge of the screen when the game scrolls, which usually were hidden on analog TVs with overscan. + + /* In /opt/retropie/configs/nes/retroarch.cfg, if running fceumm NES emulator, put: + aspect_ratio_index = "22" + custom_viewport_width = "256" + custom_viewport_height = "224" + custom_viewport_x = "32" + custom_viewport_y = "8" + (see https://github.com/RetroPie/RetroPie-Setup/wiki/Smaller-RetroArch-Screen) + and configure /boot/config.txt to 320x240 HDMI mode to get pixel perfect rendering without blurring scaling. + + Curiously, if using quicknes emulator instead, it seems to render to a horizontally 16 pixels smaller resolution. Therefore put in + aspect_ratio_index = "22" + custom_viewport_width = "240" + custom_viewport_height = "224" + custom_viewport_x = "40" + custom_viewport_y = "8" + instead for pixel perfect rendering. Also in /opt/retropie/configs/all/retroarch.cfg, set + + video_fullscreen_x = "320" + video_fullscreen_y = "240" + */ + + // The overscan values are in normalized 0.0 .. 1.0 percentages of the total width/height of the screen. + double overscanLeft = 0.00; + double overscanRight = 0.00; + double overscanTop = 0.00; + double overscanBottom = 0.00; + + // If specified, computes overscan that crops away equally much content from all sides of the source frame + // to display the center of the source frame pixel perfect. +#ifdef DISPLAY_CROPPED_INSTEAD_OF_SCALING + if (DISPLAY_DRAWABLE_WIDTH < display_info.width) + { + overscanLeft = (display_info.width - DISPLAY_DRAWABLE_WIDTH) * 0.5 / display_info.width; + overscanRight = overscanLeft; + } + if (DISPLAY_DRAWABLE_HEIGHT < display_info.height) + { + overscanTop = (display_info.height - DISPLAY_DRAWABLE_HEIGHT) * 0.5 / display_info.height; + overscanBottom = overscanTop; + } +#endif + + // Overscan must be actual pixels - can't be fractional, so round the overscan %s so that they align with + // pixel boundaries of the source image. + overscanLeft = (double)ROUND_TO_FLOOR_INT(display_info.width * overscanLeft) / display_info.width; + overscanRight = (double)ROUND_TO_CEIL_INT(display_info.width * overscanRight) / display_info.width; + overscanTop = (double)ROUND_TO_FLOOR_INT(display_info.height * overscanTop) / display_info.height; + overscanBottom = (double)ROUND_TO_CEIL_INT(display_info.height * overscanBottom) / display_info.height; + + int relevantDisplayWidth = ROUND_TO_NEAREST_INT(display_info.width * (1.0 - overscanLeft - overscanRight)); + int relevantDisplayHeight = ROUND_TO_NEAREST_INT(display_info.height * (1.0 - overscanTop - overscanBottom)); + printf("Relevant source display area size with overscan cropped away: %dx%d.\n", relevantDisplayWidth, relevantDisplayHeight); + + double scalingFactorWidth = (double)DISPLAY_DRAWABLE_WIDTH/relevantDisplayWidth; + double scalingFactorHeight = (double)DISPLAY_DRAWABLE_HEIGHT/relevantDisplayHeight; + +#ifndef DISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING + // If doing aspect ratio correct scaling, scale both width and height by equal proportions + scalingFactorWidth = scalingFactorHeight = MIN(scalingFactorWidth, scalingFactorHeight); +#endif + + // Since display resolution must be full pixels and not fractional, round the scaling to nearest pixel size + // (and recompute after the subpixel rounding what the actual scaling factor ends up being) + int scaledWidth = ROUND_TO_NEAREST_INT(relevantDisplayWidth * scalingFactorWidth); + int scaledHeight = ROUND_TO_NEAREST_INT(relevantDisplayHeight * scalingFactorHeight); + scalingFactorWidth = (double)scaledWidth/relevantDisplayWidth; + scalingFactorHeight = (double)scaledHeight/relevantDisplayHeight; + + displayXOffset = DISPLAY_COVERED_LEFT_SIDE + (DISPLAY_DRAWABLE_WIDTH - scaledWidth) / 2; + displayYOffset = DISPLAY_COVERED_TOP_SIDE + (DISPLAY_DRAWABLE_HEIGHT - scaledHeight) / 2; + + excessPixelsLeft = ROUND_TO_NEAREST_INT(display_info.width * overscanLeft * scalingFactorWidth); + excessPixelsRight = ROUND_TO_NEAREST_INT(display_info.width * overscanRight * scalingFactorWidth); + excessPixelsTop = ROUND_TO_NEAREST_INT(display_info.height * overscanTop * scalingFactorHeight); + excessPixelsBottom = ROUND_TO_NEAREST_INT(display_info.height * overscanBottom * scalingFactorHeight); + + gpuFrameWidth = scaledWidth; + gpuFrameHeight = scaledHeight; + gpuFramebufferScanlineStrideBytes = RoundUpToMultipleOf((gpuFrameWidth + excessPixelsLeft + excessPixelsRight) * 2, 32); + gpuFramebufferSizeBytes = gpuFramebufferScanlineStrideBytes * (gpuFrameHeight + excessPixelsTop + excessPixelsBottom); + + // BUG in vc_dispmanx_resource_read_data(!!): If one is capturing a small subrectangle of a large screen resource rectangle, the destination pointer + // is in vc_dispmanx_resource_read_data() incorrectly still taken to point to the top-left corner of the large screen resource, instead of the top-left + // corner of the subrectangle to capture. Therefore do dirty pointer arithmetic to adjust for this. To make this safe, videoCoreFramebuffer is allocated + // double its needed size so that this adjusted pointer does not reference outside allocated memory (if it did, vc_dispmanx_resource_read_data() was seen + // to randomly fail and then subsequently hang if called a second time) + videoCoreFramebuffer[0] = (uint16_t *)Malloc(gpuFramebufferSizeBytes*2, "gpu.cpp framebuffer0"); + videoCoreFramebuffer[1] = (uint16_t *)Malloc(gpuFramebufferSizeBytes*2, "gpu.cpp framebuffer1"); + memset(videoCoreFramebuffer[0], 0, gpuFramebufferSizeBytes*2); + memset(videoCoreFramebuffer[1], 0, gpuFramebufferSizeBytes*2); + videoCoreFramebuffer[0] += (gpuFramebufferSizeBytes>>1); + videoCoreFramebuffer[1] += (gpuFramebufferSizeBytes>>1); + + syslog(LOG_INFO, "GPU display is %dx%d. SPI display is %dx%d with drawable area of %dx%d. Applying scaling factor horiz=%.2fx & vert=%.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactorWidth, scalingFactorHeight, displayXOffset, displayYOffset, scaledWidth, scaledHeight); + printf("Source GPU display is %dx%d. Output SPI display is %dx%d with a drawable area of %dx%d. Applying scaling factor horiz=%.2fx & vert=%.2fx, xOffset: %d, yOffset: %d, scaledWidth: %d, scaledHeight: %d\n", display_info.width, display_info.height, DISPLAY_WIDTH, DISPLAY_HEIGHT, DISPLAY_DRAWABLE_WIDTH, DISPLAY_DRAWABLE_HEIGHT, scalingFactorWidth, scalingFactorHeight, displayXOffset, displayYOffset, scaledWidth, scaledHeight); + + uint32_t image_prt; + printf("Creating dispmanX resource of size %dx%d (aspect ratio=%f).\n", scaledWidth + excessPixelsLeft + excessPixelsRight, scaledHeight + excessPixelsTop + excessPixelsBottom, (double)(scaledWidth + excessPixelsLeft + excessPixelsRight) / (scaledHeight + excessPixelsTop + excessPixelsBottom)); +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE + screen_resource = vc_dispmanx_resource_create(VC_IMAGE_RGB565, scaledHeight + excessPixelsTop + excessPixelsBottom, scaledWidth + excessPixelsLeft + excessPixelsRight, &image_prt); + vc_dispmanx_rect_set(&rect, excessPixelsTop, excessPixelsLeft, scaledHeight, scaledWidth); +#else + screen_resource = vc_dispmanx_resource_create(VC_IMAGE_RGB565, scaledWidth + excessPixelsLeft + excessPixelsRight, scaledHeight + excessPixelsTop + excessPixelsBottom, &image_prt); + vc_dispmanx_rect_set(&rect, excessPixelsLeft, excessPixelsTop, scaledWidth, scaledHeight); +#endif + if (!screen_resource) FATAL_ERROR("vc_dispmanx_resource_create failed!"); + printf("GPU grab rectangle is offset x=%d,y=%d, size w=%dxh=%d, aspect ratio=%f\n", excessPixelsLeft, excessPixelsTop, scaledWidth, scaledHeight, (double)scaledWidth / scaledHeight); + +#ifdef USE_GPU_VSYNC + // Register to receive vsync notifications. This is a heuristic, since the application might not be locked at vsync, and even + // if it was, this signal is not a guaranteed edge trigger for availability of new frames. + vc_dispmanx_vsync_callback(display, VsyncCallback, 0); +#else + // Record some fake samples to frame rate histogram to fast track it to warm state. + uint64_t now = tick(); + for(int i = 0; i < HISTOGRAM_SIZE; ++i) + AddHistogramSample(now - 1000000ULL*(HISTOGRAM_SIZE-i) / TARGET_FRAME_RATE); + + int rc = pthread_create(&gpuPollingThread, NULL, gpu_polling_thread, NULL); // After creating the thread, it is assumed to have ownership of the SPI bus, so no SPI chat on the main thread after this. + if (rc != 0) FATAL_ERROR("Failed to create GPU polling thread!"); +#endif +} + +void DeinitGPU() +{ +#ifdef USE_GPU_VSYNC + if (display) vc_dispmanx_vsync_callback(display, NULL, 0); +#else + pthread_join(gpuPollingThread, NULL); + gpuPollingThread = (pthread_t)0; +#endif + + if (screen_resource) + { + vc_dispmanx_resource_delete(screen_resource); + screen_resource = 0; + } + + if (display) + { + vc_dispmanx_display_close(display); + display = 0; + } + + bcm_host_deinit(); +} diff --git a/usr/fbcp-ili9341/gpu.h b/usr/fbcp-ili9341/gpu.h new file mode 100644 index 0000000..5ceee54 --- /dev/null +++ b/usr/fbcp-ili9341/gpu.h @@ -0,0 +1,47 @@ +#pragma once + +#include + +void InitGPU(void); +void DeinitGPU(void); +void AddHistogramSample(uint64_t t); +bool SnapshotFramebuffer(uint16_t *destination); +bool IsNewFramebuffer(uint16_t *possiblyNewFramebuffer, uint16_t *oldFramebuffer); +uint64_t EstimateFrameRateInterval(void); +uint64_t PredictNextFrameArrivalTime(void); + +extern uint16_t *videoCoreFramebuffer[2]; +extern volatile int numNewGpuFrames; +extern int displayXOffset; +extern int displayYOffset; +extern int gpuFrameWidth; +extern int gpuFrameHeight; +extern int gpuFramebufferScanlineStrideBytes; +extern int gpuFramebufferSizeBytes; + +extern int excessPixelsLeft; +extern int excessPixelsRight; +extern int excessPixelsTop; +extern int excessPixelsBottom; + +#define FRAME_HISTORY_MAX_SIZE 240 +extern int frameTimeHistorySize; + +struct FrameHistory +{ + uint64_t time; + bool interlaced; +}; + +extern FrameHistory frameTimeHistory[FRAME_HISTORY_MAX_SIZE]; + +#define HISTOGRAM_SIZE 240 +extern uint64_t frameArrivalTimes[HISTOGRAM_SIZE]; +extern uint64_t frameArrivalTimesTail; +extern int histogramSize; + +// Returns Nth most recent entry in the frame times histogram, 0 = most recent, (histogramSize-1) = oldest +#define GET_HISTOGRAM(idx) frameArrivalTimes[(frameArrivalTimesTail - 1 - (idx) + HISTOGRAM_SIZE) % HISTOGRAM_SIZE] + +// Source framebuffer captured from DispmanX is (currently) always 16-bits R5G6B5 +#define FRAMEBUFFER_BYTESPERPIXEL 2 diff --git a/usr/fbcp-ili9341/hx8357d.cpp b/usr/fbcp-ili9341/hx8357d.cpp new file mode 100644 index 0000000..5d9562c --- /dev/null +++ b/usr/fbcp-ili9341/hx8357d.cpp @@ -0,0 +1,122 @@ +#include "config.h" + +// TODO: Share common parts of this file with ILI9341 to avoid code duplication + +#ifdef HX8357D + +#include "spi.h" + +#include +#include + +void InitHX8357D() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + SPI_TRANSFER(0x01/*Software Reset*/); + usleep(5*1000); + SPI_TRANSFER(0x28/*Display OFF*/); + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = 0; +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + SPI_TRANSFER(0x3A/*Interface Pixel Format*/, 0x55/*16 bits/pixel*/); + +#ifdef DISPLAY_INVERT_COLORS + SPI_TRANSFER(0x21/*Display Inversion ON*/); +#else + SPI_TRANSFER(0x20/*Display Inversion OFF*/); +#endif + + SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + SPI_TRANSFER(0x29/*Display ON*/); + +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnBacklightOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +} + +void TurnDisplayOff() +{ + TurnBacklightOff(); +#if 0 + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +#endif +// printf("Turned display OFF\n"); +} + +void TurnDisplayOn() +{ +#if 0 + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); +#endif +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +// printf("Turned display ON\n"); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + SPI_TRANSFER(/*Display OFF*/0x28); + TurnBacklightOff(); +} + +#endif diff --git a/usr/fbcp-ili9341/hx8357d.h b/usr/fbcp-ili9341/hx8357d.h new file mode 100644 index 0000000..a079279 --- /dev/null +++ b/usr/fbcp-ili9341/hx8357d.h @@ -0,0 +1,26 @@ +#pragma once + +#ifdef HX8357D + +// Data specific to the HX8357D controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#ifdef ADAFRUIT_HX8357D_PITFT +#include "pitft_35r_hx8357d.h" +#endif + +void InitHX8357D(void); + +void TurnDisplayOn(void); +void TurnDisplayOff(void); + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +#define MUST_SEND_FULL_CURSOR_WINDOW + +#define InitSPIDisplay InitHX8357D + +#endif diff --git a/usr/fbcp-ili9341/ili9341.cpp b/usr/fbcp-ili9341/ili9341.cpp new file mode 100644 index 0000000..5af3363 --- /dev/null +++ b/usr/fbcp-ili9341/ili9341.cpp @@ -0,0 +1,170 @@ +#include "config.h" + +#if defined(ILI9341) || defined(ILI9340) + +#include "spi.h" + +#include +#include + +void InitILI9341() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + SPI_TRANSFER(0x01/*Software Reset*/); + usleep(5*1000); + SPI_TRANSFER(0x28/*Display OFF*/); + // The following appear in ILI9341 Data Sheet v1.11 (2011/06/10), but not in older v1.02 (2010/12/06). + SPI_TRANSFER(0xCB/*Power Control A*/, 0x39/*Reserved*/, 0x2C/*Reserved*/, 0x00/*Reserved*/, 0x34/*REG_VD=1.6V*/, 0x02/*VBC=5.6V*/); // These are the same as power on. + SPI_TRANSFER(0xCF/*Power Control B*/, 0x00/*Always Zero*/, 0xC1/*Power Control=0,DRV_ena=0,PCEQ=1*/, 0x30/*DC_ena=1*/); // Not sure what the effect is, set to default as per ILI9341 Application Notes v0.6 (2011/03/11) document (which is not apparently same as default at power on). + SPI_TRANSFER(0xE8/*Driver Timing Control A*/, 0x85, 0x00, 0x78); // Not sure what the effect is, set to default as per ILI9341 Application Notes v0.6 (2011/03/11) document (which is not apparently same as default at power on). + SPI_TRANSFER(0xEA/*Driver Timing Control B*/, 0x00, 0x00); // Not sure what the effect is, set to default as per ILI9341 Application Notes v0.6 (2011/03/11) document (which is not apparently same as default at power on). + SPI_TRANSFER(0xED/*Power On Sequence Control*/, 0x64, 0x03, 0x12, 0x81); // Not sure what the effect is, set to default as per ILI9341 Application Notes v0.6 (2011/03/11) document (which is not apparently same as default at power on). +#if ILI9341_UPDATE_FRAMERATE == ILI9341_FRAMERATE_119_HZ // Setting pump ratio if update rate is less than 119 Hz does not look good but produces shimmering in panning motion. + SPI_TRANSFER(0xF7/*Pump Ratio Control*/, ILI9341_PUMP_CONTROL); +#endif + // The following appear also in old ILI9341 Data Sheet v1.02 (2010/12/06). + SPI_TRANSFER(0xC0/*Power Control 1*/, 0x23/*VRH=4.60V*/); // Set the GVDD level, which is a reference level for the VCOM level and the grayscale voltage level. + SPI_TRANSFER(0xC1/*Power Control 2*/, 0x10/*AVCC=VCIx2,VGH=VCIx7,VGL=-VCIx4*/); // Sets the factor used in the step-up circuits. To reduce power consumption, set a smaller factor. + SPI_TRANSFER(0xC5/*VCOM Control 1*/, 0x3e/*VCOMH=4.250V*/, 0x28/*VCOML=-1.500V*/); // Adjusting VCOM 1 and 2 can control display brightness + SPI_TRANSFER(0xC7/*VCOM Control 2*/, 0x86/*VCOMH=VMH-58,VCOML=VML-58*/); + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = 0; +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + +#ifdef DISPLAY_INVERT_COLORS + SPI_TRANSFER(0x21/*Display Inversion ON*/); +#else + SPI_TRANSFER(0x20/*Display Inversion OFF*/); +#endif + SPI_TRANSFER(0x3A/*COLMOD: Pixel Format Set*/, 0x55/*DPI=16bits/pixel,DBI=16bits/pixel*/); + + // According to spec sheet, display frame rate in 4-wire SPI "internal clock mode" is computed with the following formula: + // frameRate = 615000 / [ (pow(2,DIVA) * (320 + VFP + VBP) * RTNA ] + // where + // - DIVA is clock division ratio, 0 <= DIVA <= 3; so pow(2,DIVA) is either 1, 2, 4 or 8. + // - RTNA specifies the number of clocks assigned to each horizontal scanline, and must follow 16 <= RTNA <= 31. + // - VFP is vertical front porch, number of idle sleep scanlines before refreshing a new frame, 2 <= VFP <= 127. + // - VBP is vertical back porch, number of idle sleep scanlines after refreshing a new frame, 2 <= VBP <= 127. + + // Max refresh rate then is with DIVA=0, VFP=2, VBP=2 and RTNA=16: + // maxFrameRate = 615000 / (1 * (320 + 2 + 2) * 16) = 118.63 Hz + + // To get 60fps, set DIVA=0, RTNA=31, VFP=2 and VBP=2: + // minFrameRate = 615000 / (8 * (320 + 2 + 2) * 31) = 61.23 Hz + + // It seems that in internal clock mode, horizontal front and back porch settings (HFP, BFP) are ignored(?) + + SPI_TRANSFER(0xB1/*Frame Rate Control (In Normal Mode/Full Colors)*/, 0x00/*DIVA=fosc*/, ILI9341_UPDATE_FRAMERATE/*RTNA(Frame Rate)*/); +// SPI_TRANSFER(0xB5/*Blanking Porch Control*/, 0x02/*VFP, vertical front porch*/, 0x02/*VBP, vertical back porch*/, 0x0A/*HFP, horizontal front porch*/, 0x14/*HBP, horizontal back porch*/); // These are the default values at power on + SPI_TRANSFER(0xB6/*Display Function Control*/, 0x08/*PTG=Interval Scan,PT=V63/V0/VCOML/VCOMH*/, 0x82/*REV=1(Normally white),ISC(Scan Cycle)=5 frames*/, 0x27/*LCD Driver Lines=320*/); + SPI_TRANSFER(0xF2/*Enable 3G*/, 0x02/*False*/); // This one is present only in ILI9341 Data Sheet v1.11 (2011/06/10) + SPI_TRANSFER(0x26/*Gamma Set*/, 0x01/*Gamma curve 1 (G2.2)*/); + SPI_TRANSFER(0xE0/*Positive Gamma Correction*/, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00); + SPI_TRANSFER(0xE1/*Negative Gamma Correction*/, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F); + SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + SPI_TRANSFER(/*Display ON*/0x29); + +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + TurnBacklightOn(); +#endif + + // Some wonky effects to try out: +// SPI_TRANSFER(0x20/*Display Inversion OFF*/); +// SPI_TRANSFER(0x21/*Display Inversion ON*/); +// SPI_TRANSFER(0x38/*Idle Mode OFF*/); +// SPI_TRANSFER(0x39/*Idle Mode ON*/); // Idle mode gives a super-saturated high contrast reduced colors mode + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnBacklightOn() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +} + +void TurnBacklightOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +} + +void TurnDisplayOff() +{ + TurnBacklightOff(); +#if 0 + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +#endif +// printf("Turned display OFF\n"); +} + +void TurnDisplayOn() +{ +#if 0 + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); +#endif +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +// printf("Turned display ON\n"); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + SPI_TRANSFER(/*Display OFF*/0x28); + TurnBacklightOff(); +} + +#endif diff --git a/usr/fbcp-ili9341/ili9341.h b/usr/fbcp-ili9341/ili9341.h new file mode 100644 index 0000000..09468d4 --- /dev/null +++ b/usr/fbcp-ili9341/ili9341.h @@ -0,0 +1,82 @@ +#pragma once + +#if defined(ILI9341) || defined(ILI9340) + +// SPI_BUS_CLOCK_DIVISOR specifies how fast to communicate the SPI bus at. Possible values are 4, 6, 8, 10, 12, ... Smaller +// values are faster. On my PiTFT 2.8 and Waveshare32b displays, divisor value of 4 does not work, and +// 6 is the fastest possible. While developing, it was observed that a value of 12 or higher did not +// actually work either, and only 6, 8 and 10 were functioning properly. + +// On Adafruit PiTFT 2.8", the following speed configurations have been tested (on a Pi 3B): +// core_freq=400: CDIV=6, results in 66.67MHz, works +// core_freq=294: CDIV=4, results in 73.50MHz, works +// core_freq=320: CDIV=4, would result in 80.00MHz, but this was too fast for the display +// core_freq=300: CDIV=4, would result in 75.00MHz, and would work for ~99% of the time, but develop rare occassional pixel glitches once a minute or so. +// core_freq=296: CDIV=4, would result in 74.50MHz, would produce tiny individual pixel glitches very rarely, once every few 10 minutes or so. + +// On Waveshare 3.2", the following speed configurations have been observed to work (on a Pi 3B): +// core_freq=400: CDIV=6, results in 66.67MHz, works +// core_freq=310: CDIV=4, results in 77.50MHz, works +// core_freq=320: CDIV=4, would result in 80.00MHz, would work most of the time, but produced random occassional glitches every few minutes or so. + +// On Adafruit 2.2" PiTFT HAT - 320x240 Display with ILI9340 controller, the following speed configurations have been tested (on a Pi 3B): +// core_freq=338: CDIV=4, results in 84.5MHz, works +// core_freq=339: CDIV=4, would result in 84.75MHz, would work most of the time, but every few minutes generated random glitched pixels. + +// Data specific to the ILI9341 controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +// ILI9341 displays are able to update at any rate between 61Hz to up to 119Hz. Default at power on is 70Hz. +#define ILI9341_FRAMERATE_61_HZ 0x1F +#define ILI9341_FRAMERATE_63_HZ 0x1E +#define ILI9341_FRAMERATE_65_HZ 0x1D +#define ILI9341_FRAMERATE_68_HZ 0x1C +#define ILI9341_FRAMERATE_70_HZ 0x1B +#define ILI9341_FRAMERATE_73_HZ 0x1A +#define ILI9341_FRAMERATE_76_HZ 0x19 +#define ILI9341_FRAMERATE_79_HZ 0x18 +#define ILI9341_FRAMERATE_83_HZ 0x17 +#define ILI9341_FRAMERATE_86_HZ 0x16 +#define ILI9341_FRAMERATE_90_HZ 0x15 +#define ILI9341_FRAMERATE_95_HZ 0x14 +#define ILI9341_FRAMERATE_100_HZ 0x13 +#define ILI9341_FRAMERATE_106_HZ 0x12 +#define ILI9341_FRAMERATE_112_HZ 0x11 +#define ILI9341_FRAMERATE_119_HZ 0x10 + +// Visually estimating NES Super Mario Bros 3 "match mushroom, flower, star" arcade game, 119Hz gives visually +// most pleasing result, so default to using that. You can also try other settings above. 119 Hz should give +// lowest latency, perhaps 61 Hz might give least amount of tearing, although this can be quite subjective. +#define ILI9341_UPDATE_FRAMERATE ILI9341_FRAMERATE_119_HZ + +// Appears in ILI9341 Data Sheet v1.11 (2011/06/10), but not in older v1.02 (2010/12/06). This has a subtle effect on colors/saturation. +// Valid values are 0x20 and 0x30. Spec says 0x20 is default at boot, but doesn't seem so, more like 0x00 is default, giving supersaturated colors. I like 0x30 best. +// Value 0x30 doesn't seem to be available on ILI9340. +#define ILI9341_PUMP_CONTROL_2XVCI 0x20 +#define ILI9341_PUMP_CONTROL_3XVCI 0x30 + +#ifdef ILI9341 +#define ILI9341_PUMP_CONTROL ILI9341_PUMP_CONTROL_3XVCI +#else +#define ILI9341_PUMP_CONTROL ILI9341_PUMP_CONTROL_2XVCI +#endif + + +#define DISPLAY_NATIVE_WIDTH 240 +#define DISPLAY_NATIVE_HEIGHT 320 + +#ifdef ADAFRUIT_ILI9341_PITFT +#include "pitft_28r_ili9341.h" +#elif defined(ADAFRUIT_HX8357D_PITFT) +#include "pitft_35r_hx8357d.h" +#elif defined(FREEPLAYTECH_WAVESHARE32B) +#include "freeplaytech_waveshare32b.h" +#endif + +#define InitSPIDisplay InitILI9341 + +void InitILI9341(void); + +#endif diff --git a/usr/fbcp-ili9341/ili9486.cpp b/usr/fbcp-ili9341/ili9486.cpp new file mode 100644 index 0000000..0099148 --- /dev/null +++ b/usr/fbcp-ili9341/ili9486.cpp @@ -0,0 +1,163 @@ +#include "config.h" + +#if defined(ILI9486) || defined(ILI9486L) + +#include "spi.h" + +#include +#include + +void InitILI9486() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(0xB0/*Interface Mode Control*/, 0x00, 0x00/*DE polarity=High enable, PCKL polarity=data fetched at rising time, HSYNC polarity=Low level sync clock, VSYNC polarity=Low level sync clock*/); +#else + SPI_TRANSFER(0xB0/*Interface Mode Control*/, 0x00/*DE polarity=High enable, PCKL polarity=data fetched at rising time, HSYNC polarity=Low level sync clock, VSYNC polarity=Low level sync clock*/); +#endif + SPI_TRANSFER(0x11/*Sleep OUT*/); + usleep(120*1000); + +#ifdef DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2 + const uint8_t pixelFormat = 0x66; /*DPI(RGB Interface)=18bits/pixel, DBI(CPU Interface)=18bits/pixel*/ +#else + const uint8_t pixelFormat = 0x55; /*DPI(RGB Interface)=16bits/pixel, DBI(CPU Interface)=16bits/pixel*/ +#endif + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(0x3A/*Interface Pixel Format*/, 0x00, pixelFormat); +#else + SPI_TRANSFER(0x3A/*Interface Pixel Format*/, pixelFormat); +#endif + + // Oddly, WaveShare 3.5" (B) seems to need Display Inversion ON, whereas WaveShare 3.5" (A) seems to need Display Inversion OFF for proper image. See https://github.com/juj/fbcp-ili9341/issues/8 +#ifdef DISPLAY_INVERT_COLORS + SPI_TRANSFER(0x21/*Display Inversion ON*/); +#else + SPI_TRANSFER(0x20/*Display Inversion OFF*/); +#endif + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(0xC0/*Power Control 1*/, 0x00, 0x09, 0x00, 0x09); + SPI_TRANSFER(0xC1/*Power Control 2*/, 0x00, 0x41, 0x00, 0x00); + SPI_TRANSFER(0xC2/*Power Control 3*/, 0x00, 0x33); + SPI_TRANSFER(0xC5/*VCOM Control*/, 0x00, 0x00, 0x00, 0x36); +#else + SPI_TRANSFER(0xC0/*Power Control 1*/, 0x09, 0x09); + SPI_TRANSFER(0xC1/*Power Control 2*/, 0x41, 0x00); + SPI_TRANSFER(0xC2/*Power Control 3*/, 0x33); + SPI_TRANSFER(0xC5/*VCOM Control*/, 0x00, 0x36); +#endif + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = 0; +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, 0x00, madctl); + #ifndef WAVESHARE_SKIP_GAMMA_CONTROL + SPI_TRANSFER(0xE0/*Positive Gamma Control*/, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x2C, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x4C, 0x00, 0x64, 0x00, 0x36, 0x00, 0x03, 0x00, 0x0E, 0x00, 0x01, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00); + SPI_TRANSFER(0xE1/*Negative Gamma Control*/, 0x00, 0x0F, 0x00, 0x37, 0x00, 0x37, 0x00, 0x0C, 0x00, 0x0F, 0x00, 0x05, 0x00, 0x50, 0x00, 0x32, 0x00, 0x36, 0x00, 0x04, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x19, 0x00, 0x14, 0x00, 0x0F); + #endif + SPI_TRANSFER(0xB6/*Display Function Control*/, 0, 0, 0, /*ISC=2*/2, 0, /*Display Height h=*/59); // Actual display height = (h+1)*8 so (59+1)*8=480 +#else + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + #ifndef WAVESHARE_SKIP_GAMMA_CONTROL + SPI_TRANSFER(0xE0/*Positive Gamma Control*/, 0x00, 0x2C, 0x2C, 0x0B, 0x0C, 0x04, 0x4C, 0x64, 0x36, 0x03, 0x0E, 0x01, 0x10, 0x01, 0x00); + SPI_TRANSFER(0xE1/*Negative Gamma Control*/, 0x0F, 0x37, 0x37, 0x0C, 0x0F, 0x05, 0x50, 0x32, 0x36, 0x04, 0x0B, 0x00, 0x19, 0x14, 0x0F); + #endif + SPI_TRANSFER(0xB6/*Display Function Control*/, 0, /*ISC=2*/2, /*Display Height h=*/59); // Actual display height = (h+1)*8 so (59+1)*8=480 +#endif + SPI_TRANSFER(0x11/*Sleep OUT*/); + usleep(120*1000); + SPI_TRANSFER(0x29/*Display ON*/); + SPI_TRANSFER(0x38/*Idle Mode OFF*/); + SPI_TRANSFER(0x13/*Normal Display Mode ON*/); + +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + TurnBacklightOn(); +#endif + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnBacklightOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +} + +void TurnBacklightOn() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +} + +void TurnDisplayOff() +{ + TurnBacklightOff(); + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +} + +void TurnDisplayOn() +{ + TurnBacklightOff(); + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); + usleep(120 * 1000); + TurnBacklightOn(); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + TurnDisplayOff(); +} + +#endif diff --git a/usr/fbcp-ili9341/ili9486.h b/usr/fbcp-ili9341/ili9486.h new file mode 100644 index 0000000..e7e4144 --- /dev/null +++ b/usr/fbcp-ili9341/ili9486.h @@ -0,0 +1,28 @@ +#pragma once + +#include "config.h" + +// Data specific to the ILI9486 controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#ifdef WAVESHARE35B_ILI9486 +#include "waveshare35b.h" +#endif + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +// On ILI9486 the display bus commands and data are 16 bits rather than the usual 8 bits that most other controllers have. +// (On ILI9486L however the command width is 8 bits, so they are quite different) +#define DISPLAY_SPI_BUS_IS_16BITS_WIDE + +// ILI9486 does not behave well if one sends partial commands, but must finish each command or the command does not apply +#define MUST_SEND_FULL_CURSOR_WINDOW + +void InitILI9486(void); +#define InitSPIDisplay InitILI9486 + +// for the waveshare35b version 2 (IPS) we have to disable gamma control; uncomment if you use version 2 +// #define WAVESHARE_SKIP_GAMMA_CONTROL diff --git a/usr/fbcp-ili9341/ili9486l.h b/usr/fbcp-ili9341/ili9486l.h new file mode 100644 index 0000000..2dae84b --- /dev/null +++ b/usr/fbcp-ili9341/ili9486l.h @@ -0,0 +1,26 @@ +#pragma once + +#include "config.h" + +// On my Maithoga ILI9486L display (https://www.aliexpress.com/item/3-5-inch-8P-SPI-TFT-LCD-Color-Screen-Module-ILI9486-Drive-IC-320-480-RGB/32828284227.html), the following speed settings have been tested: + +// core_freq=400: CDIV=8, results in 50.00MHz, works +// core_freq=400: CDIV=6, would result in 66.666MHz, but this is too fast for the display, and produces corrupted output +// core_freq=305: CDIV=6, would result in 50.833MHz, but this would work most of the time, producing occassional corrupted pixels + +// Data specific to the ILI9486L controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +// ILI9486L only supports 18 bits/pixel R6G6B6 format (padded to 3 bytes per pixel), and no 16-bits R5G6B5 mode. +#define DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2 + +// ILI9486L does not behave well if one sends partial commands, but must finish each command or the command does not apply +#define MUST_SEND_FULL_CURSOR_WINDOW + +void InitILI9486(void); +#define InitSPIDisplay InitILI9486 diff --git a/usr/fbcp-ili9341/ili9488.cpp b/usr/fbcp-ili9341/ili9488.cpp new file mode 100644 index 0000000..ca05123 --- /dev/null +++ b/usr/fbcp-ili9341/ili9488.cpp @@ -0,0 +1,174 @@ +#include "config.h" + +#if defined(ILI9488) + +#include "spi.h" + +#include +#include + +void InitILI9488() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting ili9488 display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + //0xE0 - PGAMCTRL Positive Gamma Control + SPI_TRANSFER(0xE0, 0x00, 0x03, 0x09, 0x08, 0x16, 0x0A, 0x3F, 0x78, 0x4C, 0x09, 0x0A, 0x08, 0x16, 0x1A, 0x0F); + //0xE1 - NGAMCTRL Negative Gamma Control + SPI_TRANSFER(0xE1, 0x00, 0x16, 0x19, 0x03, 0x0F, 0x05, 0x32, 0x45, 0x46, 0x04, 0x0E, 0x0D, 0x35, 0x37, 0x0F); + // 0xC0 Power Control 1 + SPI_TRANSFER(0xC0, 0x17, 0x15); + // 0xC1 Power Control 2 + SPI_TRANSFER(0xC1, 0x41); + // 0xC5 VCOM Control + SPI_TRANSFER(0xC5, 0x00, 0x12, 0x80); + +// Memory access control. Determines display orientation, +// display color filter and refresh order/direction. +#define MADCTL_HORIZONTAL_REFRESH_ORDER (1<<2) +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_VERTICAL_REFRESH_ORDER (1<<4) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl(0); +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + // + // Shifted value of bits [7:5] (MY - ROW_ADDRESS_ORDER_SWAP, MX - COLUMN_ADDRESS_ORDER_SWAP, MV ROW_COLUMN_EXCHANGE) + // and their resulting effect on the orientation of the image + // relative to the physical screen: + // 0x40 0 deg (W = 320, H = 480, FPC connector at bottom) + // 0x20 90 deg (W = 480, H = 320, FPC connector on right) + // 0x80 180 deg (W = 320, H = 480, FPC connector on top) + // 0xE0 270 deg (W = 480, H = 320, FPC connector on left) + // 0x36 Memory Access Control - sets display rotation. + SPI_TRANSFER(0x36, madctl); + + // 0x3A Interface Pixel Format (bit depth color space) + SPI_TRANSFER(0x3A, 0x66); + // 0xB0 Interface Mode Control + SPI_TRANSFER(0xB0, 0x80); + // 0xB1 Frame Rate Control (in Normal Mode/Full Colors) + SPI_TRANSFER(0xB1, 0xA0); + +// The display inversion is controlled by two registers: +// 0xB4 determines how the LEDs are swapped.See page 224 of the datasheet: +// The different values are: +// 0x00 Column inversion. +// 0x01 1 dot inversion. +// 0x02 2 dot inversion. +// 0x20/0x21 engage and disengage the inversion itself. +// +// I could not find a difference is using the three different +// settings for 0xB4. It is left at 0x02 since that is what +// the original test value was set to. +#ifdef DISPLAY_INVERT_COLORS + // 0xB4 Display Inversion Control. + SPI_TRANSFER(0xB4, 0x02); + // 0x21 Display Inversion ON. + SPI_TRANSFER(0x21); +#else + // 0xB4 Display Inversion Control. + SPI_TRANSFER(0xB4, 0x02); + // 0x20 Display Inversion OFF. + SPI_TRANSFER(0x20); +#endif + + // 0xB6 Display Function Control. + SPI_TRANSFER(0xB6, 0x02, 0x02); + // 0xE9 Set Image Function. + SPI_TRANSFER(0xE9, 0x00); + // 0xF7 Adjuist Control 3 + SPI_TRANSFER(0xF7, 0xA9, 0x51, 0x2C, 0x82); + // 0x11 Exit Sleep Mode. (Sleep OUT) + SPI_TRANSFER(0x11); + usleep(120*1000); + // 0x29 Display ON. + SPI_TRANSFER(0x29); + // 0x38 Idle Mode OFF. + SPI_TRANSFER(0x38); + // 0x13 Normal Display Mode ON. + SPI_TRANSFER(0x13); + +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + TurnBacklightOn(); +#endif + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnBacklightOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +} + +void TurnBacklightOn() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +} + +void TurnDisplayOff() +{ + TurnBacklightOff(); + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +} + +void TurnDisplayOn() +{ + TurnBacklightOff(); + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); + usleep(120 * 1000); + TurnBacklightOn(); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + TurnDisplayOff(); +} + +#endif diff --git a/usr/fbcp-ili9341/ili9488.h b/usr/fbcp-ili9341/ili9488.h new file mode 100644 index 0000000..40e4558 --- /dev/null +++ b/usr/fbcp-ili9341/ili9488.h @@ -0,0 +1,24 @@ +#pragma once + +#include "config.h" + +// Tested with display model ER-TFT035-6 from BuyDisplay.com: +// https://www.buydisplay.com/serial-spi-3-5-inch-tft-lcd-module-in-320x480-optl-touchscreen-ili9488 +// Using long dupont wires to connect to a Pi Zero, the clock divider was tested down to a value of 12. + +// Data specific to the ILI948X controllers +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +// 18 bits/pixel R6G6B6 format (padded to 3 bytes per pixel), and no 16-bits R5G6B5 mode. +#define DISPLAY_COLOR_FORMAT_R6X2G6X2B6X2 + +// ILI948X does not behave well if one sends partial commands, but must finish each command or the command does not apply +#define MUST_SEND_FULL_CURSOR_WINDOW + +void InitILI9488(void); +#define InitSPIDisplay InitILI9488 diff --git a/usr/fbcp-ili9341/kernel/Makefile b/usr/fbcp-ili9341/kernel/Makefile new file mode 100644 index 0000000..6ffe5c1 --- /dev/null +++ b/usr/fbcp-ili9341/kernel/Makefile @@ -0,0 +1,3 @@ +obj-m := bcm2835_spi_display.o + +CFLAGS_bcm2835_spi_display.o := -O3 -std=gnu99 -Wno-declaration-after-statement -DKERNEL_MODULE -DILI9341=1 -DADAFRUIT_ILI9341_PITFT=1 diff --git a/usr/fbcp-ili9341/kernel/bcm2835_spi_display.c b/usr/fbcp-ili9341/kernel/bcm2835_spi_display.c new file mode 100644 index 0000000..346c33e --- /dev/null +++ b/usr/fbcp-ili9341/kernel/bcm2835_spi_display.c @@ -0,0 +1,473 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../config.h" +#include "../display.h" +#include "../spi.h" +#include "../util.h" +#include "../dma.h" + +static inline uint64_t tick(void) +{ + struct timespec start = current_kernel_time(); + return start.tv_sec * 1000000 + start.tv_nsec / 1000; +} + +// TODO: Super-dirty temp, factor this into kbuild Makefile. +#include "../spi.cpp" +#include "../dma.cpp" + +volatile SPITask *currentTask = 0; +volatile uint8_t *taskNextByte = 0; +volatile uint8_t *taskEndByte = 0; + +#define SPI_BUS_PROC_ENTRY_FILENAME "bcm2835_spi_display_bus" + +typedef struct mmap_info +{ + char *data; +} mmap_info; + +static void p_vm_open(struct vm_area_struct *vma) +{ +} + +static void p_vm_close(struct vm_area_struct *vma) +{ +} + +static int p_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + mmap_info *info = (mmap_info *)vma->vm_private_data; + if (info->data) + { + struct page *page = virt_to_page(info->data + vmf->pgoff*PAGE_SIZE); + get_page(page); + vmf->page = page; + } + return 0; +} + +static struct vm_operations_struct vm_ops = +{ + .open = p_vm_open, + .close = p_vm_close, + .fault = p_vm_fault, +}; + +static int p_mmap(struct file *filp, struct vm_area_struct *vma) +{ + vma->vm_ops = &vm_ops; + vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_private_data = filp->private_data; + p_vm_open(vma); + return 0; +} + +static int p_open(struct inode *inode, struct file *filp) +{ + mmap_info *info = kmalloc(sizeof(mmap_info), GFP_KERNEL); + info->data = (void*)spiTaskMemory; + filp->private_data = info; + return 0; +} + +static int p_release(struct inode *inode, struct file *filp) +{ + mmap_info *info; + info = filp->private_data; + kfree(info); + filp->private_data = NULL; + return 0; +} + +static const struct file_operations fops = +{ + .mmap = p_mmap, + .open = p_open, + .release = p_release, +}; + +#ifdef KERNEL_DRIVE_WITH_IRQ +static irqreturn_t irq_handler(int irq, void* dev_id) +{ +#ifndef KERNEL_MODULE_CLIENT_DRIVES + uint32_t cs = spi->cs; + if (!taskNextByte) + { + if (currentTask) DoneTask((SPITask*)currentTask); + currentTask = GetTask(); + if (!currentTask) + { + spi->cs = (cs & ~BCM2835_SPI0_CS_TA) | BCM2835_SPI0_CS_CLEAR; + return IRQ_HANDLED; + } + + if ((cs & (BCM2835_SPI0_CS_RXF|BCM2835_SPI0_CS_RXR))) (void)spi->fifo; + while (!(spi->cs & BCM2835_SPI0_CS_DONE)) + { + if ((spi->cs & (BCM2835_SPI0_CS_RXF|BCM2835_SPI0_CS_RXR|BCM2835_SPI0_CS_RXD))) + (void)spi->fifo; + } + CLEAR_GPIO(GPIO_TFT_DATA_CONTROL); + spi->fifo = currentTask->cmd; + if (currentTask->size == 0) // Was this a task without data bytes? If so, nothing more to do here, go to sleep to wait for next IRQ event + { + DoneTask((SPITask*)currentTask); + taskNextByte = 0; + currentTask = 0; + } + else + { + taskNextByte = currentTask->data; + taskEndByte = currentTask->data + currentTask->size; + } +#if 0 // Testing overhead of not returning after command byte, but synchronously polling it out.. + while (!(spi->cs & BCM2835_SPI0_CS_DONE)) ; + (void)spi->fifo; +#else + return IRQ_HANDLED; +#endif + } + if (taskNextByte == currentTask->data) + { + SET_GPIO(GPIO_TFT_DATA_CONTROL); + __sync_synchronize(); + } + + // Test code: write and read from FIFO as many bytes as spec says we should be allowed to, without checking CS in between. +// int maxBytesToSend = (cs & BCM2835_SPI0_CS_DONE) ? 16 : 12; +// if ((cs & BCM2835_SPI0_CS_RXF)) (void)spi->fifo; +// if ((cs & BCM2835_SPI0_CS_RXR)) for(int i = 0; i < MIN(maxBytesToSend, taskEndByte-taskNextByte); ++i) { spi->fifo = *taskNextByte++; (void)spi->fifo; } +// else for(int i = 0; i < MIN(maxBytesToSend, taskEndByte-taskNextByte); ++i) { spi->fifo = *taskNextByte++; } + + while(taskNextByte < taskEndByte) + { + uint32_t cs = spi->cs; + if ((cs & (BCM2835_SPI0_CS_RXR | BCM2835_SPI0_CS_RXF))) spi->cs = cs | BCM2835_SPI0_CS_CLEAR_RX; + if ((cs & BCM2835_SPI0_CS_TXD)) spi->fifo = *taskNextByte++; + if ((cs & BCM2835_SPI0_CS_RXD)) (void)spi->fifo; + else break; + } + + if (taskNextByte >= taskEndByte) + { + if ((cs & BCM2835_SPI0_CS_INTR)) spi->cs = (cs & ~BCM2835_SPI0_CS_INTR) | BCM2835_SPI0_CS_INTD; + taskNextByte = 0; + } + else + { + if (!(cs & BCM2835_SPI0_CS_INTR)) spi->cs = (cs | BCM2835_SPI0_CS_INTR) & ~BCM2835_SPI0_CS_INTR; + } +#endif + return IRQ_HANDLED; +} +#endif + +#define req(cnd) if (!(cnd)) { LOG("!!!%s!!!\n", #cnd);} + +uint32_t virt_to_bus_address(volatile void *virtAddress) +{ + return (uint32_t)virt_to_phys((void*)virtAddress) | 0x40000000U; +} + +volatile int shuttingDown = 0; +dma_addr_t spiTaskMemoryPhysical = 0; + +#ifdef USE_DMA_TRANSFERS + +void DMATest(void); + +// Debug code to verify memory->memory streaming of DMA, no SPI peripheral interaction (remove this) +void DMATest() +{ + LOG("Testing DMA transfers"); + + dma_addr_t dma_mem_phys = 0; + void *dma_mem = dma_alloc_writecombine(0, SHARED_MEMORY_SIZE, &dma_mem_phys, GFP_KERNEL); + LOG("Allocated DMA memory: mem: %p, phys: %p", dma_mem, (void*)dma_mem_phys); + + spiTaskMemory = (SharedMemory *)dma_mem; + while(!shuttingDown) + { + msleep(100); + static int ctr = 0; + uint32_t base = (ctr++ * 34153) % SPI_QUEUE_SIZE; + uint32_t size = 65; + uint32_t base2 = base + size; + if (base2 + size > SPI_QUEUE_SIZE) continue; + + memset((void*)spiTaskMemory->buffer, 0xCB, SPI_QUEUE_SIZE); + + uint8_t *src = (uint8_t *)(spiTaskMemory->buffer + base); + src = (uint8_t *)((uintptr_t)src); + for(int i = 0; i < size; ++i) + src[i] = i; + + uint8_t *dst = (uint8_t *)(spiTaskMemory->buffer + base2); + dst = (uint8_t *)((uintptr_t)dst); + +#define TO_BUS(ptr) (( ((uint32_t)dma_mem_phys + ((uintptr_t)(ptr) - (uintptr_t)dma_mem))) | 0xC0000000U) + + volatile DMAChannelRegisterFile *dmaCh = dma+dmaTxChannel; +// printk(KERN_INFO "CS: %x, cbAddr: %p, ti: %x, src: %p, dst: %p, len: %u, stride: %u, nextConBk: %p, debug: %x", +// dmaCh->cs, (void*)dmaCh->cbAddr, dmaCh->cb.ti, (void*)dmaCh->cb.src, (void*)dmaCh->cb.dst, dmaCh->cb.len, dmaCh->cb.stride, (void*)dmaCh->cb.next, dmaCh->cb.debug); + + volatile DMAControlBlock *cb = &spiTaskMemory->cb[0].cb; + req(((uintptr_t)cb) % 256 == 0); + cb->ti = BCM2835_DMA_TI_SRC_INC | BCM2835_DMA_TI_DEST_INC; + cb->src = TO_BUS(src); + cb->dst = TO_BUS(dst); + cb->len = size; + cb->stride = 0; + cb->next = 0; + cb->debug = 0; + cb->reserved = 0; +// DumpCS(dmaCh->cs); +// DumpDebug(dmaCh->cb.debug); +// DumpTI(dmaCh->cb.ti); + LOG("Waiting for transfer %d, src:%p(phys:%p) to dst:%p (phys:%p)", ctr, (void*)src, (void*)cb->src, (void*)dst, (void*)cb->dst); + writel(TO_BUS(cb), &dmaCh->cbAddr); + writel(BCM2835_DMA_CS_ACTIVE | BCM2835_DMA_CS_END | BCM2835_DMA_CS_INT | BCM2835_DMA_CS_WAIT_FOR_OUTSTANDING_WRITES | BCM2835_DMA_CS_SET_PRIORITY(0xF) | BCM2835_DMA_CS_SET_PANIC_PRIORITY(0xF), &dmaCh->cs); + + while((readl(&dmaCh->cs) & BCM2835_DMA_CS_ACTIVE) && !shuttingDown) + { + cpu_relax(); + } + + if (shuttingDown) + { + LOG("Module shutdown"); + spiTaskMemory = 0; + return; + } + int errors = 0; + for(int i = 0; i < size; ++i) + if (dst[i] != src[i]) + { + errors = true; + break; + } + + if (errors) + { + printk(KERN_INFO "CS: %x, cbAddr: %p, ti: %x, src: %p, dst: %p, len: %u, stride: %u, nextConBk: %p, debug: %x", + dmaCh->cs, (void*)dmaCh->cbAddr, dmaCh->cb.ti, (void*)dmaCh->cb.src, (void*)dmaCh->cb.dst, dmaCh->cb.len, dmaCh->cb.stride, (void*)dmaCh->cb.next, dmaCh->cb.debug); + for(int i = 0; i < size; ++i) + { + printk(KERN_INFO "Result %p %d: %x vs dst %p %x\n", (void*)virt_to_phys(src+i), i, src[i], (void*)virt_to_phys(dst+i), dst[i]); + } + DumpCS(dmaCh->cs); + DumpDebug(dmaCh->cb.debug); + DumpTI(dmaCh->cb.ti); + LOG("Abort"); + break; + } + } + LOG("DMA transfer test done"); + spiTaskMemory = 0; +} +#endif + +void PumpSPI(void) +{ +#ifdef KERNEL_DRIVE_WITH_IRQ + spi->cs = BCM2835_SPI0_CS_CLEAR | BCM2835_SPI0_CS_TA | BCM2835_SPI0_CS_INTR | BCM2835_SPI0_CS_INTD; // Initialize the Control and Status register to defaults: CS=0 (Chip Select), CPHA=0 (Clock Phase), CPOL=0 (Clock Polarity), CSPOL=0 (Chip Select Polarity), TA=0 (Transfer not active), and reset TX and RX queues. +#else + if (spiTaskMemory->queueTail != spiTaskMemory->queueHead) + { + BEGIN_SPI_COMMUNICATION(); + { + int i = 0; + while(spiTaskMemory->queueTail != spiTaskMemory->queueHead) + { + ++i; + if (i > 500) break; + SPITask *task = GetTask(); + if (task) + { + RunSPITask(task); + DoneTask(task); + } + else + break; + } + } + END_SPI_COMMUNICATION(); + } +#endif +} + +static struct timer_list my_timer; + void my_timer_callback( unsigned long data ) +{ + if (shuttingDown) return; + + PumpSPI(); + int ret = mod_timer( &my_timer, jiffies + msecs_to_jiffies(1) ); + if (ret) printk("Error in mod_timer\n"); +} + +static int display_initialization_thread(void *unused) +{ + printk(KERN_INFO "BCM2835 SPI Display driver thread started"); + +#ifndef KERNEL_MODULE_CLIENT_DRIVES + + // Initialize display. TODO: Move to be shared with ili9341.cpp. + QUEUE_SPI_TRANSFER(0xC0/*Power Control 1*/, 0x23/*VRH=4.60V*/); // Set the GVDD level, which is a reference level for the VCOM level and the grayscale voltage level. + QUEUE_SPI_TRANSFER(0xC1/*Power Control 2*/, 0x10/*AVCC=VCIx2,VGH=VCIx7,VGL=-VCIx4*/); // Sets the factor used in the step-up circuits. To reduce power consumption, set a smaller factor. + QUEUE_SPI_TRANSFER(0xC5/*VCOM Control 1*/, 0x3e/*VCOMH=4.250V*/, 0x28/*VCOML=-1.500V*/); // Adjusting VCOM 1 and 2 can control display brightness + QUEUE_SPI_TRANSFER(0xC7/*VCOM Control 2*/, 0x86/*VCOMH=VMH-58,VCOML=VML-58*/); + +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + uint8_t madctl = MADCTL_BGR_PIXEL_ORDER; +#ifdef DISPLAY_OUTPUT_LANDSCAPE + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + QUEUE_SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + QUEUE_SPI_TRANSFER(0x3A/*COLMOD: Pixel Format Set*/, 0x55/*DPI=16bits/pixel,DBI=16bits/pixel*/); + QUEUE_SPI_TRANSFER(0xB1/*Frame Rate Control (In Normal Mode/Full Colors)*/, 0x00/*DIVA=fosc*/, 0x18/*RTNA(Frame Rate)=79Hz*/); + QUEUE_SPI_TRANSFER(0xB6/*Display Function Control*/, 0x08/*PTG=Interval Scan,PT=V63/V0/VCOML/VCOMH*/, 0x82/*REV=1(Normally white),ISC(Scan Cycle)=5 frames*/, 0x27/*LCD Driver Lines=320*/); + QUEUE_SPI_TRANSFER(0x26/*Gamma Set*/, 0x01/*Gamma curve 1 (G2.2)*/); + QUEUE_SPI_TRANSFER(0xE0/*Positive Gamma Correction*/, 0x0F, 0x31, 0x2B, 0x0C, 0x0E, 0x08, 0x4E, 0xF1, 0x37, 0x07, 0x10, 0x03, 0x0E, 0x09, 0x00); + QUEUE_SPI_TRANSFER(0xE1/*Negative Gamma Correction*/, 0x00, 0x0E, 0x14, 0x03, 0x11, 0x07, 0x31, 0xC1, 0x48, 0x08, 0x0F, 0x0C, 0x31, 0x36, 0x0F); + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + + PumpSPI(); + msleep(1000); + QUEUE_SPI_TRANSFER(/*Display ON*/0x29); + +#if 1 + // XXX Debug: Random garbage to verify screen updates working + for(int y = 0; y < DISPLAY_HEIGHT; ++y) + { + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, DISPLAY_WIDTH >> 8, DISPLAY_WIDTH & 0xFF); + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, y >> 8, y & 0xFF, DISPLAY_HEIGHT >> 8, DISPLAY_HEIGHT & 0xFF); + SPITask *clearLine = AllocTask(DISPLAY_SCANLINE_SIZE); + clearLine->cmd = DISPLAY_WRITE_PIXELS; + clearLine->size = DISPLAY_SCANLINE_SIZE; + for(int i = 0; i < DISPLAY_SCANLINE_SIZE; ++i) + clearLine->data[i] = tick() * y + i; + CommitTask(clearLine); + } + PumpSPI(); + msleep(1000); +#endif + + // Initial screen clear + for(int y = 0; y < DISPLAY_HEIGHT; ++y) + { + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, DISPLAY_WIDTH >> 8, DISPLAY_WIDTH & 0xFF); + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, y >> 8, y & 0xFF, DISPLAY_HEIGHT >> 8, DISPLAY_HEIGHT & 0xFF); + SPITask *clearLine = AllocTask(DISPLAY_SCANLINE_SIZE); + clearLine->cmd = DISPLAY_WRITE_PIXELS; + clearLine->size = DISPLAY_SCANLINE_SIZE; + memset((void*)clearLine->data, 0, DISPLAY_SCANLINE_SIZE); + CommitTask(clearLine); + } + PumpSPI(); + + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_X, 0, 0, DISPLAY_WIDTH >> 8, DISPLAY_WIDTH & 0xFF); + QUEUE_SPI_TRANSFER(DISPLAY_SET_CURSOR_Y, 0, 0, DISPLAY_HEIGHT >> 8, DISPLAY_HEIGHT & 0xFF); + + spi->cs = BCM2835_SPI0_CS_CLEAR | BCM2835_SPI0_CS_TA | BCM2835_SPI0_CS_INTR | BCM2835_SPI0_CS_INTD; +#endif + + PumpSPI(); + + // Expose SPI worker ring bus to user space driver application. + proc_create(SPI_BUS_PROC_ENTRY_FILENAME, 0, NULL, &fops); + +#if 0 + // XXX Debug: + DMATest(); +#endif + + setup_timer(&my_timer, my_timer_callback, 0); + printk("Starting timer to fire in 200ms (%ld)\n", jiffies); + int ret = mod_timer( &my_timer, jiffies + msecs_to_jiffies(200) ); + if (ret) printk("Error in mod_timer\n"); + + return 0; +} + +static struct task_struct *displayThread = 0; +static uint32_t irqHandlerCookie = 0; +static uint32_t irqRegistered = 0; + +int bcm2835_spi_display_init(void) +{ + InitSPI(); +#ifdef KERNEL_DRIVE_WITH_IRQ + int ret = request_irq(84, irq_handler, IRQF_SHARED, "spi_handler", &irqHandlerCookie); + if (ret != 0) FATAL_ERROR("request_irq failed!"); + irqRegistered = 1; +#endif + + if (!spiTaskMemory) FATAL_ERROR("Shared memory block not initialized!"); + +#ifdef USE_DMA_TRANSFERS + printk(KERN_INFO "DMA TX channel: %d, irq: %d", dmaTxChannel, dmaTxIrq); + printk(KERN_INFO "DMA RX channel: %d, irq: %d", dmaRxChannel, dmaRxIrq); + spiTaskMemory->dmaTxChannel = dmaTxChannel; + spiTaskMemory->dmaRxChannel = dmaRxChannel; +#endif + + spiTaskMemory->sharedMemoryBaseInPhysMemory = (uint32_t)virt_to_phys(spiTaskMemory) | 0x40000000U; + LOG("PhysBase: %p", (void*)spiTaskMemory->sharedMemoryBaseInPhysMemory); + + displayThread = kthread_create(display_initialization_thread, NULL, "display_thread"); + if (displayThread) wake_up_process(displayThread); + + return 0; +} + +void bcm2835_spi_display_exit(void) +{ + shuttingDown = 1; + msleep(2000); + spi->cs = BCM2835_SPI0_CS_CLEAR; + msleep(200); + DeinitSPI(); + + if (irqRegistered) + { + free_irq(84, &irqHandlerCookie); + irqRegistered = 0; + } + + remove_proc_entry(SPI_BUS_PROC_ENTRY_FILENAME, NULL); + + int ret = del_timer( &my_timer ); + if (ret) printk("The timer is still in use...\n");} + +module_init(bcm2835_spi_display_init); +module_exit(bcm2835_spi_display_exit); diff --git a/usr/fbcp-ili9341/kernel/build_kernel_module.sh b/usr/fbcp-ili9341/kernel/build_kernel_module.sh new file mode 100644 index 0000000..98a3804 --- /dev/null +++ b/usr/fbcp-ili9341/kernel/build_kernel_module.sh @@ -0,0 +1,6 @@ +sudo ./stop_kernel_module.sh +sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules + +#For debugging: generate disassembly output: +#objdump -dS bcm2835_spi_display.ko > bcm2835_spi_display.S + diff --git a/usr/fbcp-ili9341/kernel/start_kernel_module.sh b/usr/fbcp-ili9341/kernel/start_kernel_module.sh new file mode 100644 index 0000000..617337e --- /dev/null +++ b/usr/fbcp-ili9341/kernel/start_kernel_module.sh @@ -0,0 +1,3 @@ +echo Starting kernel module bcm2835_spi_display.ko +sudo insmod bcm2835_spi_display.ko + diff --git a/usr/fbcp-ili9341/kernel/stop_kernel_module.sh b/usr/fbcp-ili9341/kernel/stop_kernel_module.sh new file mode 100644 index 0000000..417d30a --- /dev/null +++ b/usr/fbcp-ili9341/kernel/stop_kernel_module.sh @@ -0,0 +1,10 @@ +# Kill user space driver program first if it happens to be running, because otherwise shutting down the kernel +# module would crash the system if the userland program was still accessing it. +echo Killing existing instances of user space driver program fbcp-ili9341 +sudo pkill fbcp-ili9341 +sudo pkill fbcp-ili9341-stable + +# Now safe to tear down the module +echo Stopping kernel module bcm2835_spi_display.ko +sudo rmmod bcm2835_spi_display.ko + diff --git a/usr/fbcp-ili9341/keyboard.cpp b/usr/fbcp-ili9341/keyboard.cpp new file mode 100644 index 0000000..4b83ac4 --- /dev/null +++ b/usr/fbcp-ili9341/keyboard.cpp @@ -0,0 +1,78 @@ +#include // input_event +#include // O_RDONLY, O_NONBLOCK +#include // printf +#include // uint64_t + +#include "config.h" +#include "keyboard.h" +#include "util.h" +#include "tick.h" + +#if defined(BACKLIGHT_CONTROL_FROM_KEYBOARD) && defined(TURN_DISPLAY_OFF_AFTER_USECS_OF_INACTIVITY) +#define READ_KEYBOARD_ENABLED +#endif + +int key_fd = -1; + +void OpenKeyboard() +{ +#ifdef READ_KEYBOARD_ENABLED + key_fd = open(KEYBOARD_INPUT_FILE, O_RDONLY|O_NONBLOCK); + if (key_fd < 0) printf("Warning: cannot open keyboard input file " KEYBOARD_INPUT_FILE "! Try double checking that it exists, or reconfigure it in keyboard.cpp, or remove line '#define BACKLIGHT_CONTROL_FROM_KEYBOARD' in config.h if you do not want keyboard activity to factor into backlight control.\n"); +#endif +} + +int ReadKeyboard() +{ +#ifdef READ_KEYBOARD_ENABLED + if (key_fd < 0) return 0; + struct input_event ev; + ssize_t bytesRead = -1; + int numRead = 0; + do + { + bytesRead = read(key_fd, &ev, sizeof(struct input_event)); + if (bytesRead >= sizeof(struct input_event)) + { + if (ev.type == 1 && ev.code != 0) // key up or down + { +// printf("time: %d %d type: %d, code: %d, value: %d\n", ev.time.tv_sec, ev.time.tv_usec, ev.type, ev.code, ev.value); + ++numRead; + } + } + } while(bytesRead > 0); + return numRead; +#else + return 0; +#endif +} + +void CloseKeyboard() +{ +#ifdef READ_KEYBOARD_ENABLED + if (key_fd >= 0) + { + close(key_fd); + key_fd = -1; + } +#endif +} + +static uint64_t lastKeyboardPressTime = 0; +static uint64_t lastKeyboardPressCheckTime = 0; + +uint64_t TimeSinceLastKeyboardPress(void) +{ +#ifdef READ_KEYBOARD_ENABLED + uint64_t now = tick(); + if (now - lastKeyboardPressCheckTime >= 250000) // ReadKeyboard() takes about 8 usecs on Pi 3B, so 250msecs poll interval should be fine + { + lastKeyboardPressCheckTime = now; + if (ReadKeyboard()) + lastKeyboardPressTime = now; + } + return now - lastKeyboardPressTime; +#else + return 0; +#endif +} diff --git a/usr/fbcp-ili9341/keyboard.h b/usr/fbcp-ili9341/keyboard.h new file mode 100644 index 0000000..efdc3d4 --- /dev/null +++ b/usr/fbcp-ili9341/keyboard.h @@ -0,0 +1,6 @@ +#pragma once + +void OpenKeyboard(void); +int ReadKeyboard(void); +void CloseKeyboard(void); +uint64_t TimeSinceLastKeyboardPress(void); diff --git a/usr/fbcp-ili9341/low_battery.cpp b/usr/fbcp-ili9341/low_battery.cpp new file mode 100644 index 0000000..c39386a --- /dev/null +++ b/usr/fbcp-ili9341/low_battery.cpp @@ -0,0 +1,80 @@ +#include + +#include "config.h" +#include "low_battery.h" +#include "gpu.h" +#include "spi.h" + +#ifdef LOW_BATTERY_PIN + +#define LOW_BATTERY_ICON_TOP_LEFT_X 10 +#define LOW_BATTERY_ICON_TOP_LEFT_Y 10 +#define LOW_BATTERY_ICON_WIDTH 35 +#define LOW_BATTERY_ICON_HEIGHT 20 +#define LOW_BATTERY_FORE_COLOR 65535 +#define LOW_BATTERY_BACK_COLOR 0 + +static bool lowBattery = false; +static uint64_t lowBatteryLastPolled = 0; + +// Battery icon from: https://github.com/martinohanlon/grrl-bat-monitor +static uint16_t lowBatteryIcon [LOW_BATTERY_ICON_HEIGHT][LOW_BATTERY_ICON_WIDTH] = { + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0}, + {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + + +void InitLowBatterySystem() +{ + for(int y = 0; y < LOW_BATTERY_ICON_HEIGHT; ++y) + for(int x = 0; x < LOW_BATTERY_ICON_WIDTH; ++x) + lowBatteryIcon[y][x] = lowBatteryIcon[y][x] ? LOW_BATTERY_FORE_COLOR : LOW_BATTERY_BACK_COLOR; + PollLowBattery(); +} + +void PollLowBattery() +{ + uint64_t now = tick(); + if (now - lowBatteryLastPolled > LOW_BATTERY_POLLING_INTERVAL) + { + lowBattery = GET_GPIO(LOW_BATTERY_PIN) ? LOW_BATTERY_IS_ACTIVE_HIGH : !LOW_BATTERY_IS_ACTIVE_HIGH; + lowBatteryLastPolled = now; + } +} + +void DrawLowBatteryIcon(uint16_t *framebuffer) +{ + if (!lowBattery) + return; + + for(int y = 0; y < LOW_BATTERY_ICON_HEIGHT; ++y) + { + int framebuffer_start_offset = (LOW_BATTERY_ICON_TOP_LEFT_Y+y)*(gpuFramebufferScanlineStrideBytes>>1)+LOW_BATTERY_ICON_TOP_LEFT_X; + memcpy(framebuffer+framebuffer_start_offset, lowBatteryIcon[y], LOW_BATTERY_ICON_WIDTH*2); + } +} + +#else + +void InitLowBatterySystem() {} +void PollLowBattery() {} +void DrawLowBatteryIcon(uint16_t *framebuffer) {} + +#endif \ No newline at end of file diff --git a/usr/fbcp-ili9341/low_battery.h b/usr/fbcp-ili9341/low_battery.h new file mode 100644 index 0000000..a117b5e --- /dev/null +++ b/usr/fbcp-ili9341/low_battery.h @@ -0,0 +1,19 @@ +#pragma once + +#include + +// All functions here are no-op when LOW_BATTERY_PIN is undef so they can be +// called unconditionnaly. + +// This functions must be called during the startup of the program to initialize +// internal data related to rendering the low battery icon. +void InitLowBatterySystem(); + +// Polls and saves the state of the battery. No-op if the function was called +// less than LOW_BATTERY_POLLING_INTERVAL tick() ago. +void PollLowBattery(); + +// Draws a low battery icon on the given framebuffer if the last call to +// pollLowBattery found a low battery state. +void DrawLowBatteryIcon(uint16_t *framebuffer); + diff --git a/usr/fbcp-ili9341/mailbox.cpp b/usr/fbcp-ili9341/mailbox.cpp new file mode 100644 index 0000000..40ddd08 --- /dev/null +++ b/usr/fbcp-ili9341/mailbox.cpp @@ -0,0 +1,83 @@ +#include "config.h" +#include "mailbox.h" +#include "util.h" +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int vcio = -1; +void OpenMailbox() +{ + vcio = open("/dev/vcio", 0); + if (vcio < 0) FATAL_ERROR("Failed to open VideoCore kernel mailbox!"); +} + +void CloseMailbox() +{ + close(vcio); + vcio = -1; +} + +// Sends a pointer to the given buffer over to the VideoCore mailbox. See https://github.com/raspberrypi/firmware/wiki/Mailbox-property-interface +void SendMailbox(void *buffer) +{ + int ret = ioctl(vcio, _IOWR(/*MAJOR_NUM=*/100, 0, char *), buffer); + if (ret < 0) FATAL_ERROR("SendMailbox failed in ioctl!"); +} + +// Defines the structure of a Mailbox message +template +struct MailboxMessage +{ + MailboxMessage(uint32_t messageId):messageSize(sizeof(*this)), requestCode(0), messageId(messageId), messageSizeBytes(sizeof(uint32_t)*PayloadSize), dataSizeBytes(sizeof(uint32_t)*PayloadSize), messageEndSentinel(0) {} + uint32_t messageSize; + uint32_t requestCode; + uint32_t messageId; + uint32_t messageSizeBytes; + uint32_t dataSizeBytes; + union + { + uint32_t payload[PayloadSize]; + uint32_t result; + }; + uint32_t messageEndSentinel; +}; + +// Sends a mailbox message with 1xuint32 payload +uint32_t Mailbox(uint32_t messageId, uint32_t payload0) +{ + MailboxMessage<1> msg(messageId); + msg.payload[0] = payload0; + SendMailbox(&msg); + return msg.result; +} + +uint32_t MailboxRet2(uint32_t messageId, uint32_t payload0) +{ + MailboxMessage<2> msg(messageId); + msg.payload[0] = payload0; + msg.payload[1] = 0; + SendMailbox(&msg); + return msg.payload[1]; +} + +// Sends a mailbox message with 3xuint32 payload +uint32_t Mailbox(uint32_t messageId, uint32_t payload0, uint32_t payload1, uint32_t payload2) +{ + MailboxMessage<3> msg(messageId); + msg.payload[0] = payload0; + msg.payload[1] = payload1; + msg.payload[2] = payload2; + SendMailbox(&msg); + return msg.result; +} diff --git a/usr/fbcp-ili9341/mailbox.h b/usr/fbcp-ili9341/mailbox.h new file mode 100644 index 0000000..91badda --- /dev/null +++ b/usr/fbcp-ili9341/mailbox.h @@ -0,0 +1,10 @@ +#pragma once + +#include + +void OpenMailbox(void); +void CloseMailbox(void); +void SendMailbox(void *buffer); +uint32_t Mailbox(uint32_t messageId, uint32_t payload0); +uint32_t MailboxRet2(uint32_t messageId, uint32_t payload0); +uint32_t Mailbox(uint32_t messageId, uint32_t payload0, uint32_t payload1, uint32_t payload2); diff --git a/usr/fbcp-ili9341/mem_alloc.cpp b/usr/fbcp-ili9341/mem_alloc.cpp new file mode 100644 index 0000000..72aa2a0 --- /dev/null +++ b/usr/fbcp-ili9341/mem_alloc.cpp @@ -0,0 +1,24 @@ +#include "config.h" +#include "mem_alloc.h" + +#include +#include +#include + +uint64_t totalCpuMemoryAllocated = 0; + +void *Malloc(size_t bytes, const char *reason) +{ + void *ptr = malloc(bytes); + if (ptr) + { + totalCpuMemoryAllocated += bytes; // Currently we don't decrement this, so this only counts up (all allocations are persistent so far, so that's ok for now) +// printf("Allocated %zd bytes of CPU memory for %s. Total memory allocated: %llu bytes\n", bytes, reason, totalCpuMemoryAllocated); + return ptr; + } + else + { + printf("Failed to allocate %zd bytes of memory for %s!\n", bytes, reason); + exit(1); + } +} diff --git a/usr/fbcp-ili9341/mem_alloc.h b/usr/fbcp-ili9341/mem_alloc.h new file mode 100644 index 0000000..4ab7ba9 --- /dev/null +++ b/usr/fbcp-ili9341/mem_alloc.h @@ -0,0 +1,8 @@ +#pragma once + +#include +#include + +extern uint64_t totalCpuMemoryAllocated; + +void *Malloc(size_t bytes, const char *reason); diff --git a/usr/fbcp-ili9341/mpi3501.cpp b/usr/fbcp-ili9341/mpi3501.cpp new file mode 100644 index 0000000..67178a1 --- /dev/null +++ b/usr/fbcp-ili9341/mpi3501.cpp @@ -0,0 +1,135 @@ +#include "config.h" + +#ifdef MPI3501 + +#include "spi.h" + +#include +#include + +void ChipSelectHigh() +{ + WAIT_SPI_FINISHED(); + CLEAR_GPIO(GPIO_SPI0_CE0); // Enable Touch + SET_GPIO(GPIO_SPI0_CE0); // Disable Touch + __sync_synchronize(); + SET_GPIO(GPIO_SPI0_CE1); // Disable Display + CLEAR_GPIO(GPIO_SPI0_CE1); // Enable Display + __sync_synchronize(); +} + +void InitKeDeiV63() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // For sanity, start with both Chip selects high to ensure that the display will see a high->low enable transition when we start. + SET_GPIO(GPIO_SPI0_CE0); // Disable Touch + SET_GPIO(GPIO_SPI0_CE1); // Disable Display + usleep(1000); + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + CLEAR_GPIO(GPIO_SPI0_CE0); // Enable Touch + CLEAR_GPIO(GPIO_SPI0_CE1); // Enable Display + + BEGIN_SPI_COMMUNICATION(); + + usleep(25*1000); + + SET_GPIO(GPIO_SPI0_CE0); // Disable Touch + usleep(25*1000); + + SPI_TRANSFER(0x00000000); // This command seems to be Reset + usleep(120*1000); + + SPI_TRANSFER(0x00000100); + usleep(50*1000); + SPI_TRANSFER(0x00001100); + usleep(60*1000); + + SPI_TRANSFER(0xB9001100, 0x00, 0xFF, 0x00, 0x83, 0x00, 0x57); + usleep(5*1000); + + SPI_TRANSFER(0xB6001100, 0x00, 0x2C); + SPI_TRANSFER(0x11001100/*Sleep Out*/); + usleep(150*1000); + + SPI_TRANSFER(0x3A001100/*Interface Pixel Format*/, 0x00, 0x55); + SPI_TRANSFER(0xB0001100, 0x00, 0x68); + SPI_TRANSFER(0xCC001100, 0x00, 0x09); + SPI_TRANSFER(0xB3001100, 0x00, 0x43, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06); + SPI_TRANSFER(0xB1001100, 0x00, 0x00, 0x00, 0x15, 0x00, 0x1C, 0x00, 0x1C, 0x00, 0x83, 0x00, 0x44); + SPI_TRANSFER(0xC0001100, 0x00, 0x24, 0x00, 0x24, 0x00, 0x01, 0x00, 0x3C, 0x00, 0x1E, 0x00, 0x08); + SPI_TRANSFER(0xB4001100, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x2A, 0x00, 0x0D, 0x00, 0x4F); + SPI_TRANSFER(0xE0001100, 0x00, 0x02, 0x00, 0x08, 0x00, 0x11, 0x00, 0x23, 0x00, 0x2C, 0x00, 0x40, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x48, 0x00, 0x41, 0x00, 0x3C, 0x00, 0x33, 0x00, 0x2E, 0x00, 0x28, 0x00, 0x27, 0x00, 0x1B, 0x00, 0x02, 0x00, 0x08, 0x00, 0x11, 0x00, 0x23, 0x00, 0x2C, 0x00, 0x40, 0x00, 0x4A, 0x00, 0x52, 0x00, 0x48, 0x00, 0x41, 0x00, 0x3C, 0x00, 0x33, 0x00, 0x2E, 0x00, 0x28, 0x00, 0x27, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x01); + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = 0; +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + SPI_TRANSFER(0x36001100/*MADCTL: Memory Access Control*/, 0x00, madctl); + + SPI_TRANSFER(0x29001100/*Display ON*/); + + usleep(200*1000); + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnBacklightOff() +{ +} + +void TurnBacklightOn() +{ +} + +void TurnDisplayOff() +{ +} + +void TurnDisplayOn() +{ +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + TurnDisplayOff(); +} + +#endif diff --git a/usr/fbcp-ili9341/mpi3501.h b/usr/fbcp-ili9341/mpi3501.h new file mode 100644 index 0000000..5a67d7d --- /dev/null +++ b/usr/fbcp-ili9341/mpi3501.h @@ -0,0 +1,48 @@ +#pragma once + +#include "config.h" + +#ifdef MPI3501 + +// Data specific to the KeDei v6.3 display +#define DISPLAY_SET_CURSOR_X 0x2A001100 +#define DISPLAY_SET_CURSOR_Y 0x2B001100 +#define DISPLAY_WRITE_PIXELS 0x2C001100 + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +// On KeDei v6.3 display, each 16-bit command (of which highest 8 bits are always 0x00) is always prepended with a 16-bit command/data prefix that is either 0x0011 (command) or 0x0015 (data). +#define DISPLAY_SPI_BUS_IS_16BITS_WIDE + +// KeDei v6.3 does not behave well if one sends partial commands, but must finish each command or the command does not apply +#define MUST_SEND_FULL_CURSOR_WINDOW + +// KeDei v6.3 is a 3-wire SPI display, DC line is not used +#define SPI_3WIRE_PROTOCOL + +// KeDei frames all command/data packets with a 16 bit prefix. +#define SPI_3WIRE_DATA_COMMAND_FRAMING_BITS 16 + +// On KeDei, SPI commands are 32-bit wide, instead of 8-bit or 16-bit. +#define SPI_32BIT_COMMANDS + +// SPI drive settings are different compared to most other displays: KeDei SPI hat connects display to SPI channel 1 (channel 0 is for touch controller), +// and Polarity and Phase are reversed. (Chip Select line is idle when high, and bits are clocked on rising edge of the serial clock line) +#define DISPLAY_SPI_DRIVE_SETTINGS (1 | BCM2835_SPI0_CS_CPOL | BCM2835_SPI0_CS_CPHA) + +// A peculiarity of KeDei is that it needs the Touch and Display CS lines pumped for each 32-bit word that is written, or otherwise it does not process bytes on the bus. (it does send +// return bytes back on the MISO line though even without this, so it does at least do something even without this, but nothing would show up on the screen if this pumping is not done) +#define CHIP_SELECT_LINE_NEEDS_REFRESHING_EACH_32BITS_WRITTEN + +// On KeDei, CS0 line is for touch, and CS1 line is for the LCD +#define DISPLAY_USES_CS1 + +#ifdef USE_DMA_TRANSFERS +#warning KeDei v6.3 controller does not currently support DMA, rebuild with CMake directive -DUSE_DMA_TRANSFERS=OFF. +#endif + +void InitKeDeiV63(void); +#define InitSPIDisplay InitKeDeiV63 + +#endif diff --git a/usr/fbcp-ili9341/mz61581.cpp b/usr/fbcp-ili9341/mz61581.cpp new file mode 100644 index 0000000..d7ae001 --- /dev/null +++ b/usr/fbcp-ili9341/mz61581.cpp @@ -0,0 +1,123 @@ +#include "config.h" + +#ifdef MZ61581 + +#include "spi.h" + +#include +#include + +void InitMZ61581() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + // Reverse engineered with logic analyzer, not sure what these mean. If you have a data sheet for MZ61581, please send it my way. + SPI_TRANSFER(0xB0, 0x00); + SPI_TRANSFER(0xB3, 0x02, 0x00, 0x00, 0x00); + SPI_TRANSFER(0xC0, 0x13, 0x3B, 0x00, 0x02, 0x00, 0x01, 0x00, 0x43); + SPI_TRANSFER(0xC1, 0x08, 0x16, 0x08, 0x08); + SPI_TRANSFER(0xC4, 0x11, 0x07, 0x03, 0x03); + SPI_TRANSFER(0xC6, 0x00); + SPI_TRANSFER(0xC8, 0x03, 0x03, 0x13, 0x5C, 0x03, 0x07, 0x14, 0x08, 0x00, 0x21, 0x08, 0x14, 0x07, 0x53, 0x0C, 0x13, 0x03, 0x03, 0x21, 0x00); + SPI_TRANSFER(0x35, 0x00); + SPI_TRANSFER(0x44, 0x00, 0x01); + SPI_TRANSFER(0xD0, 0x07, 0x07, 0x1D, 0x03); + SPI_TRANSFER(0xD1, 0x03, 0x30, 0x10); + SPI_TRANSFER(0xD2, 0x03, 0x14, 0x04); + + // The following coincide with e.g. ILI9341. + + SPI_TRANSFER(0x3A/*COLMOD: Pixel Format Set*/, 0x55/*DPI=16bits/pixel,DBI=16bits/pixel*/); + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = MADCTL_COLUMN_ADDRESS_ORDER_SWAP; +#ifndef DISPLAY_SWAP_BGR + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + + SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(300 * 1000); + SPI_TRANSFER(0x29/*Display ON*/); + SPI_TRANSFER(0x2C); + + // TONTEC_MZ61581 has backlight active when backlight GPIO is low, and at boot, it seems to be disabled, so always need to enable it. +#if defined(GPIO_TFT_BACKLIGHT) && (defined(BACKLIGHT_CONTROL) || defined(TONTEC_MZ61581)) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. MZ61581 backlight is on when the Backlight GPIO pin is 0. +#endif + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnDisplayOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +#if 0 + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +#endif +// printf("Turned display OFF\n"); +} + +void TurnDisplayOn() +{ +#if 0 + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); +#endif +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +// printf("Turned display ON\n"); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); + SPI_TRANSFER(/*Display OFF*/0x28); +} + +#endif diff --git a/usr/fbcp-ili9341/mz61581.h b/usr/fbcp-ili9341/mz61581.h new file mode 100644 index 0000000..f02e7ca --- /dev/null +++ b/usr/fbcp-ili9341/mz61581.h @@ -0,0 +1,32 @@ +#pragma once + +#ifdef MZ61581 + +// SPI_BUS_CLOCK_DIVISOR specifies how fast to communicate the SPI bus at. Possible values are 4, 6, 8, 10, 12, ... Smaller +// values are faster. + +// The following bus speed have been tested on Tontec 3.5" display with marking "MZ61581-PI-EXT 2016.1.28" on the back (on a Pi 3B+): + +// core_freq=280: CDIV=2, results in 140.00MHz, works +// core_freq=281: CDIV=2, results in 140.50MHz, works, but oddly there is a certain shade of brown color on the ground of OpenTyrian that then starts flickering faintly red - everything else seemed fine. (At 142.5MHz very noticeable) + +// Data specific to the MZ61581 controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#define DISPLAY_NATIVE_WIDTH 320 +#define DISPLAY_NATIVE_HEIGHT 480 + +#ifdef TONTEC_MZ61581 +#include "tontec_35_mz61581.h" +#endif + +#define InitSPIDisplay InitMZ61581 + +void InitMZ61581(void); + +void TurnDisplayOn(void); +void TurnDisplayOff(void); + +#endif diff --git a/usr/fbcp-ili9341/pitft_28r_ili9341.h b/usr/fbcp-ili9341/pitft_28r_ili9341.h new file mode 100644 index 0000000..d23a3fd --- /dev/null +++ b/usr/fbcp-ili9341/pitft_28r_ili9341.h @@ -0,0 +1,25 @@ +#pragma once + +// Data specific to Adafruit's PiTFT 2.8 display +#ifdef ADAFRUIT_ILI9341_PITFT + +// Even though the display controller protocol over the SPI bus is standard as per e.g. ILI9341 spec sheet, +// and the pins that one uses for the Pi hardware SPI are also standard; +// the choice of which Raspberry Pi GPIO pin is used for flipping the Data/Control pin of the display +// can vary. Pre-made stack-on hats such as on Adafruit's ILI9341, or predesigned schematics configurations +// such as Freeplaytech's WaveShare32B display wiring can standardize the pin to use in some configurations, but +// if you did your wiring customized directly on the GPIO pins, you will likely need to check which pin to +// configure here. This pin numberings is specified in the BCM pins namespace. + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 25 /*!< Version 1, Pin P1-22, PiTFT 2.8 resistive Data/Control pin */ +#endif + +#if !defined(GPIO_TFT_BACKLIGHT) +// Adafruit 2.2" 320x240 HAT has backlight on pin 18: https://learn.adafruit.com/adafruit-2-2-pitft-hat-320-240-primary-display-for-raspberry-pi/backlight-control +// So does Adafruit 2.8" 320x240 display: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/backlight-control +// And so does Adafruit 3.5" 480x320 display: https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/faq?view=all#pwm-backlight-control-with-gpio-18 +#define GPIO_TFT_BACKLIGHT 18 +#endif + +#endif diff --git a/usr/fbcp-ili9341/pitft_35r_hx8357d.h b/usr/fbcp-ili9341/pitft_35r_hx8357d.h new file mode 100644 index 0000000..1ebc706 --- /dev/null +++ b/usr/fbcp-ili9341/pitft_35r_hx8357d.h @@ -0,0 +1,27 @@ +#pragma once + +// Data specific to Adafruit's PiTFT 3.5" display +#ifdef ADAFRUIT_HX8357D_PITFT + +// SPI_BUS_CLOCK_DIVISOR specifies how fast to communicate the SPI bus at. Possible values +// are 4, 6, 8, 10, 12, ... Smaller values are faster. On my PiTFT 3.5" display, the +// following values were observed to work (on a Pi 3B): + +// core_freq=314: CDIV=6, results in 52.333MHz + +// While the following values were seen to not work: + +// core_freq=315: CDIV=6, would result in 52.50MHz, which would work for several minutes, but then introduce infrequent single pixel glitches + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 25 +#endif + +#if !defined(GPIO_TFT_BACKLIGHT) +// Adafruit 2.2" 320x240 HAT has backlight on pin 18: https://learn.adafruit.com/adafruit-2-2-pitft-hat-320-240-primary-display-for-raspberry-pi/backlight-control +// So does Adafruit 2.8" 320x240 display: https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/backlight-control +// And so does Adafruit 3.5" 480x320 display: https://learn.adafruit.com/adafruit-pitft-3-dot-5-touch-screen-for-raspberry-pi/faq?view=all#pwm-backlight-control-with-gpio-18 +#define GPIO_TFT_BACKLIGHT 18 +#endif + +#endif diff --git a/usr/fbcp-ili9341/spi.cpp b/usr/fbcp-ili9341/spi.cpp new file mode 100644 index 0000000..80dbe22 --- /dev/null +++ b/usr/fbcp-ili9341/spi.cpp @@ -0,0 +1,669 @@ +#ifndef KERNEL_MODULE +#include // printf, stderr +#include // syslog +#include // open, O_RDWR, O_SYNC +#include // mmap, munmap +#include // pthread_create +#include // bcm_host_get_peripheral_address, bcm_host_get_peripheral_size, bcm_host_get_sdram_address +#endif + +#include "config.h" +#include "spi.h" +#include "util.h" +#include "dma.h" +#include "mailbox.h" +#include "mem_alloc.h" + +// Uncomment this to print out all bytes sent to the SPI bus +// #define DEBUG_SPI_BUS_WRITES + +#ifdef DEBUG_SPI_BUS_WRITES +#define DEBUG_PRINT_WRITTEN_BYTE(byte) do { \ + printf("%02X", byte); \ + if ((writeCounter & 3) == 0) printf("\n"); \ + } while(0) +#else +#define DEBUG_PRINT_WRITTEN_BYTE(byte) ((void)0) +#endif + +#ifdef CHIP_SELECT_LINE_NEEDS_REFRESHING_EACH_32BITS_WRITTEN +void ChipSelectHigh(); +#define TOGGLE_CHIP_SELECT_LINE() if ((++writeCounter & 3) == 0) { ChipSelectHigh(); } +#else +#define TOGGLE_CHIP_SELECT_LINE() ((void)0) +#endif + +static uint32_t writeCounter = 0; + +#define WRITE_FIFO(word) do { \ + uint8_t w = (word); \ + spi->fifo = w; \ + TOGGLE_CHIP_SELECT_LINE(); \ + DEBUG_PRINT_WRITTEN_BYTE(w); \ + } while(0) + +int mem_fd = -1; +volatile void *bcm2835 = 0; +volatile GPIORegisterFile *gpio = 0; +volatile SPIRegisterFile *spi = 0; + +// Points to the system timer register. N.B. spec sheet says this is two low and high parts, in an 32-bit aligned (but not 64-bit aligned) address. Profiling shows +// that Pi 3 Model B does allow reading this as a u64 load, and even when unaligned, it is around 30% faster to do so compared to loading in parts "lo | (hi << 32)". +volatile uint64_t *systemTimerRegister = 0; + +void DumpSPICS(uint32_t reg) +{ + PRINT_FLAG(BCM2835_SPI0_CS_CS); + PRINT_FLAG(BCM2835_SPI0_CS_CPHA); + PRINT_FLAG(BCM2835_SPI0_CS_CPOL); + PRINT_FLAG(BCM2835_SPI0_CS_CLEAR_TX); + PRINT_FLAG(BCM2835_SPI0_CS_CLEAR_RX); + PRINT_FLAG(BCM2835_SPI0_CS_TA); + PRINT_FLAG(BCM2835_SPI0_CS_DMAEN); + PRINT_FLAG(BCM2835_SPI0_CS_INTD); + PRINT_FLAG(BCM2835_SPI0_CS_INTR); + PRINT_FLAG(BCM2835_SPI0_CS_ADCS); + PRINT_FLAG(BCM2835_SPI0_CS_DONE); + PRINT_FLAG(BCM2835_SPI0_CS_RXD); + PRINT_FLAG(BCM2835_SPI0_CS_TXD); + PRINT_FLAG(BCM2835_SPI0_CS_RXR); + PRINT_FLAG(BCM2835_SPI0_CS_RXF); + printf("SPI0 DLEN: %u\n", spi->dlen); + printf("SPI0 CE0 register: %d\n", GET_GPIO(GPIO_SPI0_CE0) ? 1 : 0); +} + +#ifdef RUN_WITH_REALTIME_THREAD_PRIORITY + +#include +#include + +void SetRealtimeThreadPriority() +{ + sched_param params; + params.sched_priority = sched_get_priority_max(SCHED_FIFO); + + int failed = pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶ms); + if (failed) FATAL_ERROR("pthread_setschedparam() failed!"); + + int policy = 0; + failed = pthread_getschedparam(pthread_self(), &policy, ¶ms); + if (failed) FATAL_ERROR("pthread_getschedparam() failed!"); + + if (policy != SCHED_FIFO) FATAL_ERROR("Failed to set realtime thread policy!"); + printf("Set fbcp-ili9341 thread scheduling priority to maximum (%d)\n", sched_get_priority_max(SCHED_FIFO)); +} + +#endif + +// Errata to BCM2835 behavior: documentation states that the SPI0 DLEN register is only used for DMA. However, even when DMA is not being utilized, setting it from +// a value != 0 or 1 gets rid of an excess idle clock cycle that is present when transmitting each byte. (by default in Polled SPI Mode each 8 bits transfer in 9 clocks) +// With DLEN=2 each byte is clocked to the bus in 8 cycles, observed to improve max throughput from 56.8mbps to 63.3mbps (+11.4%, quite close to the theoretical +12.5%) +// https://www.raspberrypi.org/forums/viewtopic.php?f=44&t=181154 +#define UNLOCK_FAST_8_CLOCKS_SPI() (spi->dlen = 2) + +#ifdef ALL_TASKS_SHOULD_DMA +bool previousTaskWasSPI = true; +#endif + +#ifdef SPI_3WIRE_PROTOCOL + +uint32_t NumBytesNeededFor32BitSPITask(uint32_t byteSizeFor8BitTask) +{ + return byteSizeFor8BitTask * 2 + 4; // 16bit -> 32bit expansion, plus 4 bytes for command word +} + +uint32_t NumBytesNeededFor9BitSPITask(uint32_t byteSizeFor8BitTask) +{ + uint32_t numOutBits = (byteSizeFor8BitTask + 1) * 9; + // The number of bits we send out in a command must be a multiple of 9 bits, because each byte is 1 data/command bit plus 8 payload bits + // But the number of bits sent out in a command must also be a multiple of 8 bits, because BCM2835 SPI peripheral only deals with sending out full bytes. + // Therefore the bits written out must be a multiple of lcm(9*8)=72bits. + numOutBits = ((numOutBits + 71) / 72) * 72; + uint32_t numOutBytes = numOutBits >> 3; + return numOutBytes; +} + +// N.B. BCM2835 hardware always clocks bytes out most significant bit (MSB) first, so when interleaving, the command bit needs to start out in the +// highest byte of the outgoing buffer. +void Interleave8BitSPITaskTo9Bit(SPITask *task) +{ + const uint32_t size8BitTask = task->size - task->sizeExpandedTaskWithPadding; + + // 9-bit SPI task lives right at the end of the 8-bit task + uint8_t *dst = task->data + size8BitTask; + + // Pre-clear the 9*8=72 bit tail end of the memory to all zeroes to avoid having to pad source data to multiples of 9. (plus padding bytes, just to be safe) + memset(dst + task->sizeExpandedTaskWithPadding - 9 - SPI_9BIT_TASK_PADDING_BYTES, 0, 9 + SPI_9BIT_TASK_PADDING_BYTES); + + // Fill first command byte xxxxxxxx -> 0xxxxxxx x: (low 0 bit to indicate a command byte) + dst[0] = task->cmd >> 1; + dst[1] = task->cmd << 7; + int dstByte = 1; + int dstBitsUsed = 1; + + int src = 0; + + // Command bit above produced one byte. If there are at least 7 bytes in the data set, we can complete a set of 8 transferred bytes. Fast track + // that: + if (size8BitTask >= 7) + { + dst[1] |= 0x40 | (task->data[0] >> 2); + dst[2] = 0x20 | (task->data[0] << 6) | (task->data[1] >> 3); + dst[3] = 0x10 | (task->data[1] << 5) | (task->data[2] >> 4); + dst[4] = 0x08 | (task->data[2] << 4) | (task->data[3] >> 5); + dst[5] = 0x04 | (task->data[3] << 3) | (task->data[4] >> 6); + dst[6] = 0x02 | (task->data[4] << 2) | (task->data[5] >> 7); + dst[7] = 0x01 | (task->data[5] << 1); + dst[8] = (task->data[6] ); + dstByte = 9; + dstBitsUsed = 0; + src = 7; + + // More fast tracking: As long as we have multiples of 8 bytes left, fast fill them in + while(src <= size8BitTask - 8) + { + uint8_t *d = dst + dstByte; + dstByte += 9; + const uint8_t *s = task->data + src; + src += 8; + + d[0] = 0x80 | (s[0] >> 1); + d[1] = 0x40 | (s[0] << 7) | (s[1] >> 2); + d[2] = 0x20 | (s[1] << 6) | (s[2] >> 3); + d[3] = 0x10 | (s[2] << 5) | (s[3] >> 4); + d[4] = 0x08 | (s[3] << 4) | (s[4] >> 5); + d[5] = 0x04 | (s[4] << 3) | (s[5] >> 6); + d[6] = 0x02 | (s[5] << 2) | (s[6] >> 7); + d[7] = 0x01 | (s[6] << 1); + d[8] = (s[7] ); + } + + // Pre-clear the next byte to be written - the slow loop below assumes it is continuing a middle of byte sequence + // N.B. This write could happen to memory that is not part of the task, so memory allocation of the 9-bit task needs to allocate one byte of padding + dst[dstByte] = 0; + } + + // Fill tail data bytes, slow path + while(src < size8BitTask) + { + uint8_t data = task->data[src++]; + + // High 1 bit to indicate a data byte + dst[dstByte] |= 1 << (7 - dstBitsUsed); + ++dstBitsUsed; + if (dstBitsUsed == 8) // Written data bit completes a full byte? + { + ++dstByte; // Advance to next byte + dstBitsUsed = 0; + // Now we are aligned, so can write the data byte directly + dst[dstByte++] = data; + dst[dstByte] = 0; // Clear old contents of the next byte to write + } + else + { + // 8 data bits + dst[dstByte++] |= data >> dstBitsUsed; + // This is the first write to the next byte, that should occur without ORring to clear old data in memory + // N.B. This write could happen to memory that is not part of the task, so memory allocation of the 9-bit task needs to allocate one byte of padding + dst[dstByte] = data << (8 - dstBitsUsed); + } + } + +#if 0 // Enable to debug correctness: + +#define BYTE_TO_BINARY_PATTERN "%c%c%c%c%c%c%c%c" +#define BYTE_TO_BINARY(byte) \ + (byte & 0x80 ? '1' : '0'), \ + (byte & 0x40 ? '1' : '0'), \ + (byte & 0x20 ? '1' : '0'), \ + (byte & 0x10 ? '1' : '0'), \ + (byte & 0x08 ? '1' : '0'), \ + (byte & 0x04 ? '1' : '0'), \ + (byte & 0x02 ? '1' : '0'), \ + (byte & 0x01 ? '1' : '0') + + printf("Interleaving result: 8-bit task of size %d bytes became %d bytes:\n", task->size - task->sizeExpandedTaskWithPadding, task->sizeExpandedTaskWithPadding - SPI_9BIT_TASK_PADDING_BYTES); + printf("8-bit c" BYTE_TO_BINARY_PATTERN, BYTE_TO_BINARY(task->cmd)); + for(int i = 0; i < task->size - task->sizeExpandedTaskWithPadding; ++i) + printf("d" BYTE_TO_BINARY_PATTERN, BYTE_TO_BINARY(task->data[i])); + printf("\n9-bit "); + for(int i = 0; i < task->sizeExpandedTaskWithPadding - SPI_9BIT_TASK_PADDING_BYTES; ++i) + printf(BYTE_TO_BINARY_PATTERN, BYTE_TO_BINARY(dst[i])); + printf("\n\n"); +#endif + +} + +void Interleave16BitSPITaskTo32Bit(SPITask *task) +{ + const uint32_t size8BitTask = task->size - task->sizeExpandedTaskWithPadding; + + // 32-bit SPI task lives right at the end of the 16-bit task + uint32_t *dst = (uint32_t *)(task->data + size8BitTask); + *dst++ = task->cmd; + + const uint32_t taskSizeU16 = size8BitTask >> 1; + uint16_t *src = (uint16_t*)task->data; + for(uint32_t i = 0; i < taskSizeU16; ++i) + dst[i] = 0x1500 | (src[i] << 16); +} + +#endif // ~SPI_3WIRE_PROTOCOL + +void WaitForPolledSPITransferToFinish() +{ + uint32_t cs; + while (!(((cs = spi->cs) ^ BCM2835_SPI0_CS_TA) & (BCM2835_SPI0_CS_DONE | BCM2835_SPI0_CS_TA))) // While TA=1 and DONE=0 + if ((cs & (BCM2835_SPI0_CS_RXR | BCM2835_SPI0_CS_RXF))) + spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; + + if ((cs & BCM2835_SPI0_CS_RXD)) spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; +} + +#ifdef ALL_TASKS_SHOULD_DMA + +#ifndef USE_DMA_TRANSFERS +#error When building with #define ALL_TASKS_SHOULD_DMA enabled, -DUSE_DMA_TRANSFERS=ON should be set in CMake command line! +#endif + +// Synchonously performs a single SPI command byte + N data bytes transfer on the calling thread. Call in between a BEGIN_SPI_COMMUNICATION() and END_SPI_COMMUNICATION() pair. +void RunSPITask(SPITask *task) +{ + uint32_t cs; + uint8_t *tStart = task->PayloadStart(); + uint8_t *tEnd = task->PayloadEnd(); + const uint32_t payloadSize = tEnd - tStart; + uint8_t *tPrefillEnd = tStart + MIN(15, payloadSize); + +#define TASK_SIZE_TO_USE_DMA 4 + // Do a DMA transfer if this task is suitable in size for DMA to handle + if (payloadSize >= TASK_SIZE_TO_USE_DMA && (task->cmd == DISPLAY_WRITE_PIXELS || task->cmd == DISPLAY_SET_CURSOR_X || task->cmd == DISPLAY_SET_CURSOR_Y)) + { + if (previousTaskWasSPI) + WaitForPolledSPITransferToFinish(); +// printf("DMA cmd=0x%x, data=%d bytes\n", task->cmd, task->PayloadSize()); + SPIDMATransfer(task); + previousTaskWasSPI = false; + } + else + { + if (!previousTaskWasSPI) + { + WaitForDMAFinished(); + spi->cs = BCM2835_SPI0_CS_TA | BCM2835_SPI0_CS_CLEAR_TX | DISPLAY_SPI_DRIVE_SETTINGS; + // After having done a DMA transfer, the SPI0 DLEN register has reset to zero, so restore it to fast mode. + UNLOCK_FAST_8_CLOCKS_SPI(); + } + else + WaitForPolledSPITransferToFinish(); + +// printf("SPI cmd=0x%x, data=%d bytes\n", task->cmd, task->PayloadSize()); + + // Send the command word if display is 4-wire (3-wire displays can omit this, commands are interleaved in the data payload stream above) +#ifndef SPI_3WIRE_PROTOCOL + CLEAR_GPIO(GPIO_TFT_DATA_CONTROL); + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + // On e.g. the ILI9486, all commands are 16-bit, so need to be clocked in in two bytes. The MSB byte is always zero though in all the defined commands. + WRITE_FIFO(0x00); +#endif + WRITE_FIFO(task->cmd); + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + while(!(spi->cs & (BCM2835_SPI0_CS_DONE))) /*nop*/; + spi->fifo; + spi->fifo; +#else + while(!(spi->cs & (BCM2835_SPI0_CS_RXD|BCM2835_SPI0_CS_DONE))) /*nop*/; +#endif + + SET_GPIO(GPIO_TFT_DATA_CONTROL); +#endif + + // Send the data payload: + while(tStart < tPrefillEnd) WRITE_FIFO(*tStart++); + while(tStart < tEnd) + { + cs = spi->cs; + if ((cs & BCM2835_SPI0_CS_TXD)) WRITE_FIFO(*tStart++); +// TODO: else asm volatile("yield"); + if ((cs & (BCM2835_SPI0_CS_RXR|BCM2835_SPI0_CS_RXF))) spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; + } + + previousTaskWasSPI = true; + } +} +#else + +void RunSPITask(SPITask *task) +{ + WaitForPolledSPITransferToFinish(); + + // The Adafruit 1.65" 240x240 ST7789 based display is unique compared to others that it does want to see the Chip Select line go + // low and high to start a new command. For that display we let hardware SPI toggle the CS line, and actually run TA<-0 and TA<-1 + // transitions to let the CS line live. For most other displays, we just set CS line always enabled for the display throughout fbcp-ili9341 lifetime, + // which is a tiny bit faster. +#ifdef DISPLAY_NEEDS_CHIP_SELECT_SIGNAL + BEGIN_SPI_COMMUNICATION(); +#endif + + uint8_t *tStart = task->PayloadStart(); + uint8_t *tEnd = task->PayloadEnd(); + const uint32_t payloadSize = tEnd - tStart; + uint8_t *tPrefillEnd = tStart + MIN(15, payloadSize); + + // Send the command word if display is 4-wire (3-wire displays can omit this, commands are interleaved in the data payload stream above) +#ifndef SPI_3WIRE_PROTOCOL + // An SPI transfer to the display always starts with one control (command) byte, followed by N data bytes. + CLEAR_GPIO(GPIO_TFT_DATA_CONTROL); + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + // On e.g. the ILI9486, all commands are 16-bit, so need to be clocked in in two bytes. The MSB byte is always zero though in all the defined commands. + WRITE_FIFO(0x00); +#endif + WRITE_FIFO(task->cmd); + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE + while(!(spi->cs & (BCM2835_SPI0_CS_DONE))) /*nop*/; + spi->fifo; + spi->fifo; +#else + while(!(spi->cs & (BCM2835_SPI0_CS_RXD|BCM2835_SPI0_CS_DONE))) /*nop*/; +#endif + + SET_GPIO(GPIO_TFT_DATA_CONTROL); +#endif // ~!SPI_3WIRE_PROTOCOL + +// For small transfers, using DMA is not worth it, but pushing through with polled SPI gives better bandwidth. +// For larger transfers though that are more than this amount of bytes, using DMA is faster. +// This cutoff number was experimentally tested to find where Polled SPI and DMA are as fast. +#define DMA_IS_FASTER_THAN_POLLED_SPI 140 + // Do a DMA transfer if this task is suitable in size for DMA to handle +#ifdef USE_DMA_TRANSFERS + if (tEnd - tStart > DMA_IS_FASTER_THAN_POLLED_SPI) + { + SPIDMATransfer(task); + + // After having done a DMA transfer, the SPI0 DLEN register has reset to zero, so restore it to fast mode. + UNLOCK_FAST_8_CLOCKS_SPI(); + } + else +#endif + { + while(tStart < tPrefillEnd) WRITE_FIFO(*tStart++); + while(tStart < tEnd) + { + uint32_t cs = spi->cs; + if ((cs & BCM2835_SPI0_CS_TXD)) WRITE_FIFO(*tStart++); +// TODO: else asm volatile("yield"); + if ((cs & (BCM2835_SPI0_CS_RXR|BCM2835_SPI0_CS_RXF))) spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; + } + } + +#ifdef DISPLAY_NEEDS_CHIP_SELECT_SIGNAL + END_SPI_COMMUNICATION(); +#endif +} +#endif + +SharedMemory *spiTaskMemory = 0; +volatile uint64_t spiThreadIdleUsecs = 0; +volatile uint64_t spiThreadSleepStartTime = 0; +volatile int spiThreadSleeping = 0; +double spiUsecsPerByte; + +SPITask *GetTask() // Returns the first task in the queue, called in worker thread +{ + uint32_t head = spiTaskMemory->queueHead; + uint32_t tail = spiTaskMemory->queueTail; + if (head == tail) return 0; + SPITask *task = (SPITask*)(spiTaskMemory->buffer + head); + if (task->cmd == 0) // Wrapped around? + { + spiTaskMemory->queueHead = 0; + __sync_synchronize(); + if (tail == 0) return 0; + task = (SPITask*)spiTaskMemory->buffer; + } + return task; +} + +void DoneTask(SPITask *task) // Frees the first SPI task from the queue, called in worker thread +{ + __atomic_fetch_sub(&spiTaskMemory->spiBytesQueued, task->PayloadSize()+1, __ATOMIC_RELAXED); + spiTaskMemory->queueHead = (uint32_t)((uint8_t*)task - spiTaskMemory->buffer) + sizeof(SPITask) + task->size; + __sync_synchronize(); +} + +extern volatile bool programRunning; + +void ExecuteSPITasks() +{ +#ifndef USE_DMA_TRANSFERS + BEGIN_SPI_COMMUNICATION(); +#endif + { + while(programRunning && spiTaskMemory->queueTail != spiTaskMemory->queueHead) + { + SPITask *task = GetTask(); + if (task) + { + RunSPITask(task); + DoneTask(task); + } + } + } +#ifndef USE_DMA_TRANSFERS + END_SPI_COMMUNICATION(); +#endif +} + +#if !defined(KERNEL_MODULE) && defined(USE_SPI_THREAD) +pthread_t spiThread; + +// A worker thread that keeps the SPI bus filled at all times +void *spi_thread(void *unused) +{ +#ifdef RUN_WITH_REALTIME_THREAD_PRIORITY + SetRealtimeThreadPriority(); +#endif + while(programRunning) + { + if (spiTaskMemory->queueTail != spiTaskMemory->queueHead) + { + ExecuteSPITasks(); + } + else + { +#ifdef STATISTICS + uint64_t t0 = tick(); + spiThreadSleepStartTime = t0; + __atomic_store_n(&spiThreadSleeping, 1, __ATOMIC_RELAXED); +#endif + if (programRunning) syscall(SYS_futex, &spiTaskMemory->queueTail, FUTEX_WAIT, spiTaskMemory->queueHead, 0, 0, 0); // Start sleeping until we get new tasks +#ifdef STATISTICS + __atomic_store_n(&spiThreadSleeping, 0, __ATOMIC_RELAXED); + uint64_t t1 = tick(); + __sync_fetch_and_add(&spiThreadIdleUsecs, t1-t0); +#endif + } + } + pthread_exit(0); +} +#endif + +int InitSPI() +{ +#ifdef KERNEL_MODULE + +#define BCM2835_PERI_BASE 0x3F000000 +#define BCM2835_GPIO_BASE 0x200000 +#define BCM2835_SPI0_BASE 0x204000 + printk("ioremapping %p\n", (void*)(BCM2835_PERI_BASE+BCM2835_GPIO_BASE)); + void *bcm2835 = ioremap(BCM2835_PERI_BASE+BCM2835_GPIO_BASE, 32768); + printk("Got bcm address %p\n", bcm2835); + if (!bcm2835) FATAL_ERROR("Failed to map BCM2835 address!"); + spi = (volatile SPIRegisterFile*)((uintptr_t)bcm2835 + BCM2835_SPI0_BASE - BCM2835_GPIO_BASE); + gpio = (volatile GPIORegisterFile*)((uintptr_t)bcm2835); + +#else // Userland version + // Memory map GPIO and SPI peripherals for direct access + mem_fd = open("/dev/mem", O_RDWR|O_SYNC); + if (mem_fd < 0) FATAL_ERROR("can't open /dev/mem (run as sudo)"); + printf("bcm_host_get_peripheral_address: %p, bcm_host_get_peripheral_size: %u, bcm_host_get_sdram_address: %p\n", bcm_host_get_peripheral_address(), bcm_host_get_peripheral_size(), bcm_host_get_sdram_address()); + bcm2835 = mmap(NULL, bcm_host_get_peripheral_size(), (PROT_READ | PROT_WRITE), MAP_SHARED, mem_fd, bcm_host_get_peripheral_address()); + if (bcm2835 == MAP_FAILED) FATAL_ERROR("mapping /dev/mem failed"); + spi = (volatile SPIRegisterFile*)((uintptr_t)bcm2835 + BCM2835_SPI0_BASE); + gpio = (volatile GPIORegisterFile*)((uintptr_t)bcm2835 + BCM2835_GPIO_BASE); + systemTimerRegister = (volatile uint64_t*)((uintptr_t)bcm2835 + BCM2835_TIMER_BASE + 0x04); // Generates an unaligned 64-bit pointer, but seems to be fine. + // TODO: On graceful shutdown, (ctrl-c signal?) close(mem_fd) +#endif + + uint32_t currentBcmCoreSpeed = MailboxRet2(0x00030002/*Get Clock Rate*/, 0x4/*CORE*/); + uint32_t maxBcmCoreTurboSpeed = MailboxRet2(0x00030004/*Get Max Clock Rate*/, 0x4/*CORE*/); + + // Estimate how many microseconds transferring a single byte over the SPI bus takes? + spiUsecsPerByte = 1000000.0 * 8.0/*bits/byte*/ * SPI_BUS_CLOCK_DIVISOR / maxBcmCoreTurboSpeed; + + printf("BCM core speed: current: %uhz, max turbo: %uhz. SPI CDIV: %d, SPI max frequency: %.0fhz\n", currentBcmCoreSpeed, maxBcmCoreTurboSpeed, SPI_BUS_CLOCK_DIVISOR, (double)maxBcmCoreTurboSpeed / SPI_BUS_CLOCK_DIVISOR); + +#if !defined(KERNEL_MODULE_CLIENT) || defined(KERNEL_MODULE_CLIENT_DRIVES) + // By default all GPIO pins are in input mode (0x00), initialize them for SPI and GPIO writes +#ifdef GPIO_TFT_DATA_CONTROL + SET_GPIO_MODE(GPIO_TFT_DATA_CONTROL, 0x01); // Data/Control pin to output (0x01) +#endif + SET_GPIO_MODE(GPIO_SPI0_MISO, 0x04); + SET_GPIO_MODE(GPIO_SPI0_MOSI, 0x04); + SET_GPIO_MODE(GPIO_SPI0_CLK, 0x04); + +#ifdef DISPLAY_NEEDS_CHIP_SELECT_SIGNAL + // The Adafruit 1.65" 240x240 ST7789 based display is unique compared to others that it does want to see the Chip Select line go + // low and high to start a new command. For that display we let hardware SPI toggle the CS line, and actually run TA<-0 and TA<-1 + // transitions to let the CS line live. For most other displays, we just set CS line always enabled for the display throughout + // fbcp-ili9341 lifetime, which is a tiny bit faster. + SET_GPIO_MODE(GPIO_SPI0_CE0, 0x04); +#ifdef DISPLAY_USES_CS1 + SET_GPIO_MODE(GPIO_SPI0_CE1, 0x04); +#endif +#else + // Set the SPI 0 pin explicitly to output, and enable chip select on the line by setting it to low. + // fbcp-ili9341 assumes exclusive access to the SPI0 bus, and exclusive presence of only one device on the bus, + // which is (permanently) activated here. + SET_GPIO_MODE(GPIO_SPI0_CE0, 0x01); + CLEAR_GPIO(GPIO_SPI0_CE0); +#ifdef DISPLAY_USES_CS1 + SET_GPIO_MODE(GPIO_SPI0_CE1, 0x01); +#endif +#endif + + spi->cs = BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; // Initialize the Control and Status register to defaults: CS=0 (Chip Select), CPHA=0 (Clock Phase), CPOL=0 (Clock Polarity), CSPOL=0 (Chip Select Polarity), TA=0 (Transfer not active), and reset TX and RX queues. + spi->clk = SPI_BUS_CLOCK_DIVISOR; // Clock Divider determines SPI bus speed, resulting speed=256MHz/clk +#endif + + // Initialize SPI thread task buffer memory +#ifdef KERNEL_MODULE_CLIENT + int driverfd = open("/proc/bcm2835_spi_display_bus", O_RDWR|O_SYNC); + if (driverfd < 0) FATAL_ERROR("Could not open SPI ring buffer - kernel driver module not running?"); + spiTaskMemory = (SharedMemory*)mmap(NULL, SHARED_MEMORY_SIZE, PROT_READ|PROT_WRITE, MAP_SHARED/* | MAP_NORESERVE | MAP_POPULATE | MAP_LOCKED*/, driverfd, 0); + close(driverfd); + if (spiTaskMemory == MAP_FAILED) FATAL_ERROR("Could not mmap SPI ring buffer!"); + printf("Got shared memory block %p, ring buffer head %p, ring buffer tail %p, shared memory block phys address: %p\n", (const char *)spiTaskMemory, spiTaskMemory->queueHead, spiTaskMemory->queueTail, spiTaskMemory->sharedMemoryBaseInPhysMemory); + +#ifdef USE_DMA_TRANSFERS + printf("DMA TX channel: %d, DMA RX channel: %d\n", spiTaskMemory->dmaTxChannel, spiTaskMemory->dmaRxChannel); +#endif + +#else + +#ifdef KERNEL_MODULE + spiTaskMemory = (SharedMemory*)kmalloc(SHARED_MEMORY_SIZE, GFP_KERNEL | GFP_DMA); + // TODO: Ideally we would be able to directly perform the DMA from the SPI ring buffer in 'spiTaskMemory'. However + // that pointer is shared to userland, and it is proving troublesome to make it both userland-writable as well as cache-bypassing DMA coherent. + // Therefore these two memory areas are separate for now, and we memcpy() from SPI ring buffer to the following intermediate 'dmaSourceMemory' + // memory area to perform the DMA transfer. Is there a way to avoid this intermediate buffer? That would improve performance a bit. + dmaSourceMemory = (SharedMemory*)dma_alloc_writecombine(0, SHARED_MEMORY_SIZE, &spiTaskMemoryPhysical, GFP_KERNEL); + LOG("Allocated DMA memory: mem: %p, phys: %p", spiTaskMemory, (void*)spiTaskMemoryPhysical); + memset((void*)spiTaskMemory, 0, SHARED_MEMORY_SIZE); +#else + spiTaskMemory = (SharedMemory*)Malloc(SHARED_MEMORY_SIZE, "spi.cpp shared task memory"); +#endif + + spiTaskMemory->queueHead = spiTaskMemory->queueTail = spiTaskMemory->spiBytesQueued = 0; +#endif + +#ifdef USE_DMA_TRANSFERS + InitDMA(); +#endif + + // Enable fast 8 clocks per byte transfer mode, instead of slower 9 clocks per byte. + UNLOCK_FAST_8_CLOCKS_SPI(); + +#if !defined(KERNEL_MODULE) && (!defined(KERNEL_MODULE_CLIENT) || defined(KERNEL_MODULE_CLIENT_DRIVES)) + printf("Initializing display\n"); + InitSPIDisplay(); + +#ifdef USE_SPI_THREAD + // Create a dedicated thread to feed the SPI bus. While this is fast, it consumes a lot of CPU. It would be best to replace + // this thread with a kernel module that processes the created SPI task queue using interrupts. (while juggling the GPIO D/C line as well) + printf("Creating SPI task thread\n"); + int rc = pthread_create(&spiThread, NULL, spi_thread, NULL); // After creating the thread, it is assumed to have ownership of the SPI bus, so no SPI chat on the main thread after this. + if (rc != 0) FATAL_ERROR("Failed to create SPI thread!"); +#else + // We will be running SPI tasks continuously from the main thread, so keep SPI Transfer Active throughout the lifetime of the driver. + BEGIN_SPI_COMMUNICATION(); +#endif + +#endif + + LOG("InitSPI done"); + return 0; +} + +void DeinitSPI() +{ +#ifdef USE_SPI_THREAD + pthread_join(spiThread, NULL); + spiThread = (pthread_t)0; +#endif + DeinitSPIDisplay(); +#ifdef USE_DMA_TRANSFERS + DeinitDMA(); +#endif + + spi->cs = BCM2835_SPI0_CS_CLEAR | DISPLAY_SPI_DRIVE_SETTINGS; + +#ifndef KERNEL_MODULE_CLIENT +#ifdef GPIO_TFT_DATA_CONTROL + SET_GPIO_MODE(GPIO_TFT_DATA_CONTROL, 0); +#endif + SET_GPIO_MODE(GPIO_SPI0_CE1, 0); + SET_GPIO_MODE(GPIO_SPI0_CE0, 0); + SET_GPIO_MODE(GPIO_SPI0_MISO, 0); + SET_GPIO_MODE(GPIO_SPI0_MOSI, 0); + SET_GPIO_MODE(GPIO_SPI0_CLK, 0); +#endif + + if (bcm2835) + { + munmap((void*)bcm2835, bcm_host_get_peripheral_size()); + bcm2835 = 0; + } + + if (mem_fd >= 0) + { + close(mem_fd); + mem_fd = -1; + } + +#ifndef KERNEL_MODULE_CLIENT + +#ifdef KERNEL_MODULE + kfree(spiTaskMemory); + dma_free_writecombine(0, SHARED_MEMORY_SIZE, dmaSourceMemory, spiTaskMemoryPhysical); + spiTaskMemoryPhysical = 0; +#else + free(spiTaskMemory); +#endif +#endif + spiTaskMemory = 0; +} diff --git a/usr/fbcp-ili9341/spi.h b/usr/fbcp-ili9341/spi.h new file mode 100644 index 0000000..e88c8d0 --- /dev/null +++ b/usr/fbcp-ili9341/spi.h @@ -0,0 +1,398 @@ +#pragma once + +#ifndef KERNEL_MODULE +#include +#include +#endif +#include + +#include "display.h" +#include "tick.h" +#include "dma.h" +#include "display.h" + +#define BCM2835_GPIO_BASE 0x200000 // Address to GPIO register file +#define BCM2835_SPI0_BASE 0x204000 // Address to SPI0 register file +#define BCM2835_TIMER_BASE 0x3000 // Address to System Timer register file + +#define BCM2835_SPI0_CS_RXF 0x00100000 // Receive FIFO is full +#define BCM2835_SPI0_CS_RXR 0x00080000 // FIFO needs reading +#define BCM2835_SPI0_CS_TXD 0x00040000 // TXD TX FIFO can accept Data +#define BCM2835_SPI0_CS_RXD 0x00020000 // RXD RX FIFO contains Data +#define BCM2835_SPI0_CS_DONE 0x00010000 // Done transfer Done +#define BCM2835_SPI0_CS_ADCS 0x00000800 // Automatically Deassert Chip Select +#define BCM2835_SPI0_CS_INTR 0x00000400 // Fire interrupts on RXR? +#define BCM2835_SPI0_CS_INTD 0x00000200 // Fire interrupts on DONE? +#define BCM2835_SPI0_CS_DMAEN 0x00000100 // Enable DMA transfers? +#define BCM2835_SPI0_CS_TA 0x00000080 // Transfer Active +#define BCM2835_SPI0_CS_CLEAR 0x00000030 // Clear FIFO Clear RX and TX +#define BCM2835_SPI0_CS_CLEAR_RX 0x00000020 // Clear FIFO Clear RX +#define BCM2835_SPI0_CS_CLEAR_TX 0x00000010 // Clear FIFO Clear TX +#define BCM2835_SPI0_CS_CPOL 0x00000008 // Clock Polarity +#define BCM2835_SPI0_CS_CPHA 0x00000004 // Clock Phase +#define BCM2835_SPI0_CS_CS 0x00000003 // Chip Select + +#define BCM2835_SPI0_CS_RXF_SHIFT 20 +#define BCM2835_SPI0_CS_RXR_SHIFT 19 +#define BCM2835_SPI0_CS_TXD_SHIFT 18 +#define BCM2835_SPI0_CS_RXD_SHIFT 17 +#define BCM2835_SPI0_CS_DONE_SHIFT 16 +#define BCM2835_SPI0_CS_ADCS_SHIFT 11 +#define BCM2835_SPI0_CS_INTR_SHIFT 10 +#define BCM2835_SPI0_CS_INTD_SHIFT 9 +#define BCM2835_SPI0_CS_DMAEN_SHIFT 8 +#define BCM2835_SPI0_CS_TA_SHIFT 7 +#define BCM2835_SPI0_CS_CLEAR_RX_SHIFT 5 +#define BCM2835_SPI0_CS_CLEAR_TX_SHIFT 4 +#define BCM2835_SPI0_CS_CPOL_SHIFT 3 +#define BCM2835_SPI0_CS_CPHA_SHIFT 2 +#define BCM2835_SPI0_CS_CS_SHIFT 0 + +#define GPIO_SPI0_MOSI 10 // Pin P1-19, MOSI when SPI0 in use +#define GPIO_SPI0_MISO 9 // Pin P1-21, MISO when SPI0 in use +#define GPIO_SPI0_CLK 11 // Pin P1-23, CLK when SPI0 in use +#define GPIO_SPI0_CE0 8 // Pin P1-24, CE0 when SPI0 in use +#define GPIO_SPI0_CE1 7 // Pin P1-26, CE1 when SPI0 in use + +extern volatile void *bcm2835; + +typedef struct GPIORegisterFile +{ + uint32_t gpfsel[6], reserved0; // GPIO Function Select registers, 3 bits per pin, 10 pins in an uint32_t + uint32_t gpset[2], reserved1; // GPIO Pin Output Set registers, write a 1 to bit at index I to set the pin at index I high + uint32_t gpclr[2], reserved2; // GPIO Pin Output Clear registers, write a 1 to bit at index I to set the pin at index I low + uint32_t gplev[2]; +} GPIORegisterFile; +extern volatile GPIORegisterFile *gpio; + +#define SET_GPIO_MODE(pin, mode) gpio->gpfsel[(pin)/10] = (gpio->gpfsel[(pin)/10] & ~(0x7 << ((pin) % 10) * 3)) | ((mode) << ((pin) % 10) * 3) +#define GET_GPIO_MODE(pin) ((gpio->gpfsel[(pin)/10] & (0x7 << ((pin) % 10) * 3)) >> (((pin) % 10) * 3)) +#define GET_GPIO(pin) (gpio->gplev[0] & (1 << (pin))) // Pin must be (0-31) +#define SET_GPIO(pin) gpio->gpset[0] = 1 << (pin) // Pin must be (0-31) +#define CLEAR_GPIO(pin) gpio->gpclr[0] = 1 << (pin) // Pin must be (0-31) + +typedef struct SPIRegisterFile +{ + uint32_t cs; // SPI Master Control and Status register + uint32_t fifo; // SPI Master TX and RX FIFOs + uint32_t clk; // SPI Master Clock Divider + uint32_t dlen; // SPI Master Number of DMA Bytes to Write +} SPIRegisterFile; +extern volatile SPIRegisterFile *spi; + +// Defines the size of the SPI task memory buffer in bytes. This memory buffer can contain two frames worth of tasks at maximum, +// so for best performance, should be at least ~DISPLAY_WIDTH*DISPLAY_HEIGHT*BYTES_PER_PIXEL*2 bytes in size, plus some small +// amount for structuring each SPITask command. Technically this can be something very small, like 4096b, and not need to contain +// even a single full frame of data, but such small buffers can cause performance issues from threads starving. +#define SHARED_MEMORY_SIZE (DISPLAY_DRAWABLE_WIDTH*DISPLAY_DRAWABLE_HEIGHT*SPI_BYTESPERPIXEL*3) +#define SPI_QUEUE_SIZE (SHARED_MEMORY_SIZE - sizeof(SharedMemory)) + +#if defined(SPI_3WIRE_DATA_COMMAND_FRAMING_BITS) && SPI_3WIRE_DATA_COMMAND_FRAMING_BITS == 1 +// Need a byte of padding for 8-bit -> 9-bit expansion for performance +#define SPI_9BIT_TASK_PADDING_BYTES 1 +#else +#define SPI_9BIT_TASK_PADDING_BYTES 0 +#endif + +// Defines the maximum size of a single SPI task, in bytes. This excludes the command byte. If MAX_SPI_TASK_SIZE +// is not defined, there is no length limit that applies. (In ALL_TASKS_SHOULD_DMA version of DMA transfer, +// there is DMA chaining, so SPI tasks can be arbitrarily long) +#ifndef ALL_TASKS_SHOULD_DMA +#define MAX_SPI_TASK_SIZE 65528 +#endif + +typedef struct __attribute__((packed)) SPITask +{ + uint32_t size; // Size, including both 8-bit and 9-bit tasks +#ifdef SPI_3WIRE_PROTOCOL + uint32_t sizeExpandedTaskWithPadding; // Size of the expanded 9-bit/32-bit task. The expanded task starts at address spiTask->data + spiTask->size - spiTask->sizeExpandedTaskWithPadding; +#endif +#ifdef SPI_32BIT_COMMANDS + uint32_t cmd; +#else + uint8_t cmd; +#endif + uint32_t dmaSpiHeader; +#ifdef OFFLOAD_PIXEL_COPY_TO_DMA_CPP + uint8_t *fb; + uint8_t *prevFb; + uint16_t width; +#endif + uint8_t data[]; // Contains both 8-bit and 9-bit tasks back to back, 8-bit first, then 9-bit. + +#ifdef SPI_3WIRE_PROTOCOL + inline uint8_t *PayloadStart() { return data + (size - sizeExpandedTaskWithPadding); } + inline uint8_t *PayloadEnd() { return data + (size - SPI_9BIT_TASK_PADDING_BYTES); } + inline uint32_t PayloadSize() const { return sizeExpandedTaskWithPadding - SPI_9BIT_TASK_PADDING_BYTES; } + inline uint32_t *DmaSpiHeaderAddress() { return (uint32_t*)(PayloadStart()-4); } +#else + inline uint8_t *PayloadStart() { return data; } + inline uint8_t *PayloadEnd() { return data + size; } + inline uint32_t PayloadSize() const { return size; } + inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; } +#endif + +} SPITask; + +#define BEGIN_SPI_COMMUNICATION() do { spi->cs = BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; } while(0) +#define END_SPI_COMMUNICATION() do { \ + uint32_t cs; \ + while (!(((cs = spi->cs) ^ BCM2835_SPI0_CS_TA) & (BCM2835_SPI0_CS_DONE | BCM2835_SPI0_CS_TA))) /* While TA=1 and DONE=0*/ \ + { \ + if ((cs & (BCM2835_SPI0_CS_RXR | BCM2835_SPI0_CS_RXF))) \ + spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; \ + } \ + spi->cs = BCM2835_SPI0_CS_CLEAR_RX | DISPLAY_SPI_DRIVE_SETTINGS; /* Clear TA and any pending bytes */ \ + } while(0) + +#define WAIT_SPI_FINISHED() do { \ + uint32_t cs; \ + while (!((cs = spi->cs) & BCM2835_SPI0_CS_DONE)) /* While DONE=0*/ \ + { \ + if ((cs & (BCM2835_SPI0_CS_RXR | BCM2835_SPI0_CS_RXF))) \ + spi->cs = BCM2835_SPI0_CS_CLEAR_RX | BCM2835_SPI0_CS_TA | DISPLAY_SPI_DRIVE_SETTINGS; \ + } \ + } while(0) + + +// A convenience for defining and dispatching SPI task bytes inline +#define SPI_TRANSFER(command, ...) do { \ + char data_buffer[] = { __VA_ARGS__ }; \ + SPITask *t = AllocTask(sizeof(data_buffer)); \ + t->cmd = (command); \ + memcpy(t->data, data_buffer, sizeof(data_buffer)); \ + CommitTask(t); \ + RunSPITask(t); \ + DoneTask(t); \ + } while(0) + +#define QUEUE_SPI_TRANSFER(command, ...) do { \ + char data_buffer[] = { __VA_ARGS__ }; \ + SPITask *t = AllocTask(sizeof(data_buffer)); \ + t->cmd = (command); \ + memcpy(t->data, data_buffer, sizeof(data_buffer)); \ + CommitTask(t); \ + } while(0) + +#ifdef DISPLAY_SPI_BUS_IS_16BITS_WIDE // For displays that have their command register set be 16 bits word size width (ILI9486) + +#define QUEUE_MOVE_CURSOR_TASK(cursor, pos) do { \ + SPITask *task = AllocTask(4); \ + task->cmd = (cursor); \ + task->data[0] = 0; \ + task->data[1] = (pos) >> 8; \ + task->data[2] = 0; \ + task->data[3] = (pos) & 0xFF; \ + bytesTransferred += 6; \ + CommitTask(task); \ + } while(0) + +#define QUEUE_SET_WRITE_WINDOW_TASK(cursor, x, endX) do { \ + SPITask *task = AllocTask(8); \ + task->cmd = (cursor); \ + task->data[0] = 0; \ + task->data[1] = (x) >> 8; \ + task->data[2] = 0; \ + task->data[3] = (x) & 0xFF; \ + task->data[4] = 0; \ + task->data[5] = (endX) >> 8; \ + task->data[6] = 0; \ + task->data[7] = (endX) & 0xFF; \ + bytesTransferred += 10; \ + CommitTask(task); \ + } while(0) + +#elif defined(DISPLAY_SET_CURSOR_IS_8_BIT) // For displays that have their set cursor commands be a uint8 instead of uint16 (SSD1351) + +#define QUEUE_SET_WRITE_WINDOW_TASK(cursor, x, endX) do { \ + SPITask *task = AllocTask(2); \ + task->cmd = (cursor); \ + task->data[0] = (x); \ + task->data[1] = (endX); \ + bytesTransferred += 3; \ + CommitTask(task); \ + } while(0) + +#else // Regular 8-bit interface with 16bits wide set cursor commands (most displays) + +#define QUEUE_MOVE_CURSOR_TASK(cursor, pos) do { \ + SPITask *task = AllocTask(2); \ + task->cmd = (cursor); \ + task->data[0] = (pos) >> 8; \ + task->data[1] = (pos) & 0xFF; \ + bytesTransferred += 3; \ + CommitTask(task); \ + } while(0) + +#define QUEUE_SET_WRITE_WINDOW_TASK(cursor, x, endX) do { \ + SPITask *task = AllocTask(4); \ + task->cmd = (cursor); \ + task->data[0] = (x) >> 8; \ + task->data[1] = (x) & 0xFF; \ + task->data[2] = (endX) >> 8; \ + task->data[3] = (endX) & 0xFF; \ + bytesTransferred += 5; \ + CommitTask(task); \ + } while(0) +#endif + +typedef struct SharedMemory +{ +#ifdef USE_DMA_TRANSFERS + volatile DMAControlBlock cb[2]; + volatile uint32_t dummyDMADestinationWriteAddress; + volatile uint32_t dmaTxChannel, dmaRxChannel; +#endif + volatile uint32_t queueHead; + volatile uint32_t queueTail; + volatile uint32_t spiBytesQueued; // Number of actual payload bytes in the queue + volatile uint32_t interruptsRaised; + volatile uintptr_t sharedMemoryBaseInPhysMemory; + volatile uint8_t buffer[]; +} SharedMemory; + +#ifdef KERNEL_MODULE +extern dma_addr_t spiTaskMemoryPhysical; +#define VIRT_TO_BUS(ptr) ((uintptr_t)(ptr) | 0xC0000000U) +#endif +extern SharedMemory *spiTaskMemory; +extern double spiUsecsPerByte; + +extern SharedMemory *dmaSourceMemory; // TODO: Optimize away the need to have this at all, instead DMA directly from SPI ring buffer if possible + +#ifdef STATISTICS +extern volatile uint64_t spiThreadIdleUsecs; +extern volatile uint64_t spiThreadSleepStartTime; +extern volatile int spiThreadSleeping; +#endif + +extern int mem_fd; + +#ifdef SPI_3WIRE_PROTOCOL + +// Converts the given SPI task in-place from an 8-bit task to a 9-bit task. +void Interleave8BitSPITaskTo9Bit(SPITask *task); + +// Converts the given SPI task in-place from a 16-bit task to a 32-bit task. +void Interleave16BitSPITaskTo32Bit(SPITask *task); + +// If the given display is a 3-wire SPI display (9 bits/task instead of 8 bits/task), this function computes the byte size of the 8-bit task when it is converted to a 9-bit task. +uint32_t NumBytesNeededFor9BitSPITask(uint32_t byteSizeFor8BitTask); + +// If the given display is a 3-wire SPI display with 32 bits bus width, this function computes the byte size of the task when it is converted to a 32-bit task. +uint32_t NumBytesNeededFor32BitSPITask(uint32_t byteSizeFor8BitTask); + +#endif + +static inline SPITask *AllocTask(uint32_t bytes) // Returns a pointer to a new SPI task block, called on main thread +{ +#ifdef SPI_3WIRE_PROTOCOL + // For 3-wire/9-bit tasks, store the converted task right at the end of the 8-bit task. +#ifdef SPI_32BIT_COMMANDS + uint32_t sizeExpandedTaskWithPadding = NumBytesNeededFor32BitSPITask(bytes) + SPI_9BIT_TASK_PADDING_BYTES; +#else + uint32_t sizeExpandedTaskWithPadding = NumBytesNeededFor9BitSPITask(bytes) + SPI_9BIT_TASK_PADDING_BYTES; +#endif + bytes += sizeExpandedTaskWithPadding; +#else +// const uint32_t totalBytesFor9BitTask = 0; +#endif + + uint32_t bytesToAllocate = sizeof(SPITask) + bytes;// + totalBytesFor9BitTask; + uint32_t tail = spiTaskMemory->queueTail; + uint32_t newTail = tail + bytesToAllocate; + // Is the new task too large to write contiguously into the ring buffer, that it's split into two parts? We never split, + // but instead write a sentinel at the end of the ring buffer, and jump the tail back to the beginning of the buffer and + // allocate the new task there. However in doing so, we must make sure that we don't write over the head marker. + if (newTail + sizeof(SPITask)/*Add extra SPITask size so that there will always be room for eob marker*/ >= SPI_QUEUE_SIZE) + { + uint32_t head = spiTaskMemory->queueHead; + // Write a sentinel, but wait for the head to advance first so that it is safe to write. + while(head > tail || head == 0/*Head must move > 0 so that we don't stomp on it*/) + { +#if defined(KERNEL_MODULE_CLIENT) && !defined(KERNEL_MODULE) + // Hack: Pump the kernel module to start transferring in case it has stopped. TODO: Remove this line: + if (!(spi->cs & BCM2835_SPI0_CS_TA)) spi->cs |= BCM2835_SPI0_CS_TA; + // Wait until there are no remaining bytes to process in the far right end of the buffer - we'll write an eob marker there as soon as the read pointer has cleared it. + // At this point the SPI queue may actually be quite empty, so don't sleep (except for now in kernel client app) + usleep(100); +#endif + head = spiTaskMemory->queueHead; + } + SPITask *endOfBuffer = (SPITask*)(spiTaskMemory->buffer + tail); + endOfBuffer->cmd = 0; // Use cmd=0x00 to denote "end of buffer, wrap to beginning" + __sync_synchronize(); + spiTaskMemory->queueTail = 0; + __sync_synchronize(); +#if !defined(KERNEL_MODULE_CLIENT) && !defined(KERNEL_MODULE) + if (spiTaskMemory->queueHead == tail) syscall(SYS_futex, &spiTaskMemory->queueTail, FUTEX_WAKE, 1, 0, 0, 0); // Wake the SPI thread if it was sleeping to get new tasks +#endif + tail = 0; + newTail = bytesToAllocate; + } + + // If the SPI task queue is full, wait for the SPI thread to process some tasks. This throttles the main thread to not run too fast. + uint32_t head = spiTaskMemory->queueHead; + while(head > tail && head <= newTail) + { +#if defined(KERNEL_MODULE_CLIENT) && !defined(KERNEL_MODULE) + // Hack: Pump the kernel module to start transferring in case it has stopped. TODO: Remove this line: + if (!(spi->cs & BCM2835_SPI0_CS_TA)) spi->cs |= BCM2835_SPI0_CS_TA; +#endif + usleep(100); // Since the SPI queue is full, we can afford to sleep a bit on the main thread without introducing lag. + head = spiTaskMemory->queueHead; + } + + SPITask *task = (SPITask*)(spiTaskMemory->buffer + tail); + task->size = bytes; +#ifdef SPI_3WIRE_PROTOCOL + task->sizeExpandedTaskWithPadding = sizeExpandedTaskWithPadding; +#endif +#ifdef OFFLOAD_PIXEL_COPY_TO_DMA_CPP + task->fb = &task->data[0]; + task->prevFb = 0; +#endif + return task; +} + +static inline void CommitTask(SPITask *task) // Advertises the given SPI task from main thread to worker, called on main thread +{ +#ifdef SPI_3WIRE_PROTOCOL +#ifdef SPI_32BIT_COMMANDS + Interleave16BitSPITaskTo32Bit(task); +#else + Interleave8BitSPITaskTo9Bit(task); +#endif +#endif + __sync_synchronize(); +#if !defined(KERNEL_MODULE_CLIENT) && !defined(KERNEL_MODULE) + uint32_t tail = spiTaskMemory->queueTail; +#endif + spiTaskMemory->queueTail = (uint32_t)((uint8_t*)task - spiTaskMemory->buffer) + sizeof(SPITask) + task->size; + __atomic_fetch_add(&spiTaskMemory->spiBytesQueued, task->PayloadSize()+1, __ATOMIC_RELAXED); + __sync_synchronize(); +#if !defined(KERNEL_MODULE_CLIENT) && !defined(KERNEL_MODULE) + if (spiTaskMemory->queueHead == tail) syscall(SYS_futex, &spiTaskMemory->queueTail, FUTEX_WAKE, 1, 0, 0, 0); // Wake the SPI thread if it was sleeping to get new tasks +#endif +} + +#ifdef USE_SPI_THREAD +#define IN_SINGLE_THREADED_MODE_RUN_TASK() ((void)0) +#else +#define IN_SINGLE_THREADED_MODE_RUN_TASK() { \ + SPITask *t = GetTask(); \ + RunSPITask(t); \ + DoneTask(t); \ +} +#endif + +int InitSPI(void); +void DeinitSPI(void); +void ExecuteSPITasks(void); +void RunSPITask(SPITask *task); +SPITask *GetTask(void); +void DoneTask(SPITask *task); +void DumpSPICS(uint32_t reg); +#ifdef RUN_WITH_REALTIME_THREAD_PRIORITY +void SetRealtimeThreadPriority(); +#endif diff --git a/usr/fbcp-ili9341/ssd1351.cpp b/usr/fbcp-ili9341/ssd1351.cpp new file mode 100644 index 0000000..1417986 --- /dev/null +++ b/usr/fbcp-ili9341/ssd1351.cpp @@ -0,0 +1,96 @@ +#include "config.h" + +#ifdef SSD1351 + +#include "spi.h" + +#include +#include + +void InitSSD1351() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 100; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { + SPI_TRANSFER(0xFD/*Set Command Lock*/, 0x12); + SPI_TRANSFER(0xFD/*Set Command Lock*/, 0xB1); + SPI_TRANSFER(0xAE/*Sleep Mode On (Display OFF)*/); + + SPI_TRANSFER(0xB3/*Set Front Clock Divider/Oscillator Frequency*/, 0xF1/*Divide Ratio=1, Oscillator Frequency=0xF*/); // This controls frame rate -> set to fastest + SPI_TRANSFER(0xCA/*Set Multiplex Ratio*/, 95); // This effectively sets the pixel height of the display, set this to 127 for 128x128 OLED, and to 95 for 128x96 OLED. It looks like even the 128x96 OLED has 128x128 bytes worth of internal memory (for hardware scrolling?) + SPI_TRANSFER(0xA0/*Set Remap*/, 0x34/*0x04=BGR<->RGB Swap | 0x10=Vertical swap | 0x20=Enable COM split odd even (this makes pixel addressing sane as one'd expect)*/); + SPI_TRANSFER(0xA1/*Set Display Start Line*/, 0); + SPI_TRANSFER(0xA2/*Set Display Offset*/, 0); + SPI_TRANSFER(0xAB/*Set Function Select*/, 0x01/*16bpp colors*/); + SPI_TRANSFER(0xB5/*Set GPIO0 and GPIO1 pin*/, 0); + SPI_TRANSFER(0xC1/*Set Contrast Current for Color A,B,C*/, 0xC8, 0x80, 0xC8); // These three seem to be first for red, second for green and third for blue, 0x00-0xFF + SPI_TRANSFER(0xC7/*Master Contrast Current Control*/, 0x0F); // 0x0F=max contrast, smaller valuers=dimmer and less power consumption + +// Some voltage settings from the spec sheet to try out, although power on defaults seem to work fine as well: +// SPI_TRANSFER(0xB1/*Set Phase Length*/, 0x32/*Phase1=0, Phase2=4*/); +// SPI_TRANSFER(0xBE/*Set VCOMH Voltage*/, 0x05); +// SPI_TRANSFER(0xB4/*Set Segment Low Voltage*/, 0xA0, 0xB5, 0x55); +// SPI_TRANSFER(0xB6/*Set Second Precharge Period*/, 0x01/*1 DCLK*/); + + SPI_TRANSFER(0xA6/*Set Display Normal*/); + SPI_TRANSFER(0xAF/*Sleep Mode OFF/Display ON*/); + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnDisplayOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +#if 0 + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +#endif +// printf("Turned display OFF\n"); +} + +void TurnDisplayOn() +{ +#if 0 + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); +#endif +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +// printf("Turned display ON\n"); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); +} + +#endif diff --git a/usr/fbcp-ili9341/ssd1351.h b/usr/fbcp-ili9341/ssd1351.h new file mode 100644 index 0000000..b35eb4e --- /dev/null +++ b/usr/fbcp-ili9341/ssd1351.h @@ -0,0 +1,39 @@ +#pragma once + +#ifdef SSD1351 + +// On Adafruit's Adafruit 1.27" and 1.5" Color OLED Breakout Board 128x96 SSD1351 display, the following speed configurations have been tested (on a Pi 3B): + +// core_freq=360: CDIV=20, results in 18.00MHz, works +// core_freq=370: CDIV=20, would result in 18.50MHz, this made the screen work for a while, but then hang +// core_freq=375: CDIV=20, would result in 18.75MHz, this made the screen work for a few seconds, but then go blank shortly after +// core_freq=355: CDIV=18, would result in 19.72MHz, this made the screen work for a few seconds, but then go blank shortly after + +// Bandwidth needed to update at 60fps: 128*96*16*60 = 11,796,480 bits/sec. +// , so the above obtained best refresh rate allows driving the screen at 60fps. + +// Data specific to the SSD1351 controller +#define DISPLAY_SET_CURSOR_X 0x15 +#define DISPLAY_SET_CURSOR_Y 0x75 +#define DISPLAY_WRITE_PIXELS 0x5C + +#define DISPLAY_NATIVE_WIDTH 128 +#define DISPLAY_NATIVE_HEIGHT 96 + +#define MUST_SEND_FULL_CURSOR_WINDOW + +// The DISPLAY_WRITE_PIXELS command on this display seems to continue from the x&y where previous command left off. This is unlike +// other displays, where issuing a DISPLAY_WRITE_PIXELS command resets the x&y cursor coordinates. +#define DISPLAY_WRITE_PIXELS_CMD_DOES_NOT_RESET_WRITE_CURSOR + +// This is defined for displays that have the set cursor command 8 bits wide (0-255) instead of 16 bits (0-65535) +#define DISPLAY_SET_CURSOR_IS_8_BIT + +#define InitSPIDisplay InitSSD1351 + +void InitSSD1351(void); + +void TurnDisplayOn(void); +void TurnDisplayOff(void); + +#endif diff --git a/usr/fbcp-ili9341/st7735r.cpp b/usr/fbcp-ili9341/st7735r.cpp new file mode 100644 index 0000000..ceac386 --- /dev/null +++ b/usr/fbcp-ili9341/st7735r.cpp @@ -0,0 +1,176 @@ +#include "config.h" + +#if defined(ST7735R) || defined(ST7735S) || defined(ST7789) + +#include "spi.h" + +#include +#include + +void InitST7735R() +{ + // If a Reset pin is defined, toggle it briefly high->low->high to enable the device. Some devices do not have a reset pin, in which case compile with GPIO_TFT_RESET_PIN left undefined. +#if defined(GPIO_TFT_RESET_PIN) && GPIO_TFT_RESET_PIN >= 0 + printf("Resetting display at reset GPIO pin %d\n", GPIO_TFT_RESET_PIN); + SET_GPIO_MODE(GPIO_TFT_RESET_PIN, 1); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + CLEAR_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); + SET_GPIO(GPIO_TFT_RESET_PIN); + usleep(120 * 1000); +#endif + + // Do the initialization with a very low SPI bus speed, so that it will succeed even if the bus speed chosen by the user is too high. + spi->clk = 34; + __sync_synchronize(); + + BEGIN_SPI_COMMUNICATION(); + { +#ifndef ST7789VW // For some reason, ST7789VW does not want to accept the Software Reset command, but screen stays black if SWRESET is sent to it. + SPI_TRANSFER(0x01/*Software Reset*/); +#endif + usleep(120*1000); + SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); +#ifndef ST7789VW // This is disabled on ST7789VW because it was observed to look visually bad, makes colors a bit too contrasty/deep + SPI_TRANSFER(0x26/*Gamma Curve Select*/, 0x04/*Gamma curve 3 (2.5x if GS=1, 2.2x otherwise)*/); +#endif + SPI_TRANSFER(0x3A/*COLMOD: Pixel Format Set*/, 0x05/*16bpp*/); + usleep(20 * 1000); + +#define MADCTL_BGR_PIXEL_ORDER (1<<3) +#define MADCTL_ROW_COLUMN_EXCHANGE (1<<5) +#define MADCTL_COLUMN_ADDRESS_ORDER_SWAP (1<<6) +#define MADCTL_ROW_ADDRESS_ORDER_SWAP (1<<7) +#define MADCTL_ROTATE_180_DEGREES (MADCTL_COLUMN_ADDRESS_ORDER_SWAP | MADCTL_ROW_ADDRESS_ORDER_SWAP) + + uint8_t madctl = 0; +#if defined(ST7735R) || defined(ST7735S) + madctl |= MADCTL_BGR_PIXEL_ORDER; +#endif +#ifdef DISPLAY_SWAP_BGR + madctl ^= MADCTL_BGR_PIXEL_ORDER; +#endif +#if defined(DISPLAY_FLIP_ORIENTATION_IN_HARDWARE) + madctl |= MADCTL_ROW_COLUMN_EXCHANGE; +#endif + + madctl |= MADCTL_ROW_ADDRESS_ORDER_SWAP; + +#if defined(WAVESHARE_ST7789VW_HAT) || defined(WAVESHARE_ST7735S_HAT) + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + +#ifdef DISPLAY_ROTATE_180_DEGREES + madctl ^= MADCTL_ROTATE_180_DEGREES; +#endif + + SPI_TRANSFER(0x36/*MADCTL: Memory Access Control*/, madctl); + usleep(10*1000); + +#ifdef ST7789 + SPI_TRANSFER(0xBA/*DGMEN: Enable Gamma*/, 0x04); + bool invertColors = true; +#else + bool invertColors = false; +#endif +#ifdef DISPLAY_INVERT_COLORS + invertColors = !invertColors; +#endif + if (invertColors) + SPI_TRANSFER(0x21/*Display Inversion On*/); + else + SPI_TRANSFER(0x20/*Display Inversion Off*/); + + SPI_TRANSFER(0x13/*NORON: Partial off (normal)*/); + usleep(10*1000); + +#ifdef ST7789 + // The ST7789 controller is actually a unit with 320x240 graphics memory area, but only 240x240 portion + // of it is displayed. Therefore if we wanted to swap row address mode above, writes to Y=0...239 range will actually land in + // memory in row addresses Y = 319-(0...239) = 319...80 range. To view this range, we must scroll the view by +80 units in Y + // direction so that contents of Y=80...319 is displayed instead of Y=0...239. + if ((madctl & MADCTL_ROW_ADDRESS_ORDER_SWAP)) + SPI_TRANSFER(0x37/*VSCSAD: Vertical Scroll Start Address of RAM*/, 0, 320 - DISPLAY_WIDTH); +#endif + + // TODO: The 0xB1 command is not Frame Rate Control for ST7789VW, 0xB3 is (add support to it) +#ifndef ST7789VW + // Frame rate = 850000 / [ (2*RTNA+40) * (162 + FPA+BPA)] + SPI_TRANSFER(0xB1/*FRMCTR1:Frame Rate Control*/, /*RTNA=*/6, /*FPA=*/1, /*BPA=*/1); // This should set frame rate = 99.67 Hz +#endif + + SPI_TRANSFER(/*Display ON*/0x29); + usleep(100 * 1000); + +#if 0 + // TODO: ST7789VW Python example suggests following, check them against datasheet if there's anything interesting + SPI_TRANSFER(0xB2, 0xc, 0xc, 0, 0x33, 0x33); + SPI_TRANSFER(0xB7, 0x35); + SPI_TRANSFER(0xBb, 0x19); + SPI_TRANSFER(0xc0, 0x2c); + SPI_TRANSFER(0xc2, 0x01); + SPI_TRANSFER(0xc3, 0x12); + SPI_TRANSFER(0xc4, 0x20); + SPI_TRANSFER(0xc6, 0x0f); + SPI_TRANSFER(0xd0, 0xa4, 0xa1); + SPI_TRANSFER(0xe0, 0xd0, 0x04, 0x0d, 0x11, 0x13, 0x2b, 0x3f, 0x54, 0x4c, 0x18, 0x0d, 0x0b, 0x1f, 0x23); + SPI_TRANSFER(0xe1, 0xd0, 0x04, 0x0c, 0x11, 0x13, 0x2c, 0x3f, 0x44, 0x51, 0x2f, 0x1f, 0x1f, 0x20, 0x23); + SPI_TRANSFER(0x21); + SPI_TRANSFER(0x11); + SPI_TRANSFER(0x29); + usleep(100 * 1000); +#endif + +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + printf("Setting TFT backlight on at pin %d\n", GPIO_TFT_BACKLIGHT); + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif + + ClearScreen(); + } +#ifndef USE_DMA_TRANSFERS // For DMA transfers, keep SPI CS & TA active. + END_SPI_COMMUNICATION(); +#endif + + // And speed up to the desired operation speed finally after init is done. + usleep(10 * 1000); // Delay a bit before restoring CLK, or otherwise this has been observed to cause the display not init if done back to back after the clear operation above. + spi->clk = SPI_BUS_CLOCK_DIVISOR; +} + +void TurnDisplayOff() +{ +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + CLEAR_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight off. +#endif +#if 0 + QUEUE_SPI_TRANSFER(0x28/*Display OFF*/); + QUEUE_SPI_TRANSFER(0x10/*Enter Sleep Mode*/); + usleep(120*1000); // Sleep off can be sent 120msecs after entering sleep mode the earliest, so synchronously sleep here for that duration to be safe. +#endif +// printf("Turned display OFF\n"); +} + +void TurnDisplayOn() +{ +#if 0 + QUEUE_SPI_TRANSFER(0x11/*Sleep Out*/); + usleep(120 * 1000); + QUEUE_SPI_TRANSFER(0x29/*Display ON*/); +#endif +#if defined(GPIO_TFT_BACKLIGHT) && defined(BACKLIGHT_CONTROL) + SET_GPIO_MODE(GPIO_TFT_BACKLIGHT, 0x01); // Set backlight pin to digital 0/1 output mode (0x01) in case it had been PWM controlled + SET_GPIO(GPIO_TFT_BACKLIGHT); // And turn the backlight on. +#endif +// printf("Turned display ON\n"); +} + +void DeinitSPIDisplay() +{ + ClearScreen(); +} + +#endif diff --git a/usr/fbcp-ili9341/st7735r.h b/usr/fbcp-ili9341/st7735r.h new file mode 100644 index 0000000..789b4b6 --- /dev/null +++ b/usr/fbcp-ili9341/st7735r.h @@ -0,0 +1,59 @@ +#pragma once + +#if defined(ST7735R) || defined(ST7735S) || defined(ST7789) || defined(ST7789VW) + +// On Arduino "A000096" 160x128 ST7735R LCD Screen, the following speed configurations have been tested (on a Pi 3B): +// core_freq=355: CDIV=6, results in 59.167MHz, works +// core_freq=360: CDIV=6, would result in 60.00MHz, this would work for several minutes, but then the display would turn all white at random + +// On Adafruit 1.54" 240x240 Wide Angle TFT LCD Display with MicroSD ST7789 screen, the following speed configurations have been tested (on a Pi 3B): +// core_freq=340: CDIV=4, results in 85.00MHz, works +// core_freq=350: CDIV=4, would result in 87.50MHz, which would work for a while, but generate random single pixel glitches every once in a few minutes + +// Data specific to the ILI9341 controller +#define DISPLAY_SET_CURSOR_X 0x2A +#define DISPLAY_SET_CURSOR_Y 0x2B +#define DISPLAY_WRITE_PIXELS 0x2C + +#if defined(ST7789) || defined(ST7789VW) +#define DISPLAY_NATIVE_WIDTH 240 +#define DISPLAY_NATIVE_HEIGHT 240 +#elif defined(ST7735R) +#define DISPLAY_NATIVE_WIDTH 128 +#define DISPLAY_NATIVE_HEIGHT 160 +#elif defined(ST7735S) +// ST7735S displays are 128x128 pixels, but they have a somewhat odd offset that X,Y=(0,0) is not top-left corner pixel, but X,Y=(2,1) is. +// Therefore consider the display two pixels wider and one pixel higher, and add a constant offset of X=+2, Y=+1 via the DISPLAY_COVERED_* mechanism. + +#define DISPLAY_NATIVE_WIDTH 130 +#define DISPLAY_NATIVE_HEIGHT 129 + +#define DISPLAY_NATIVE_COVERED_LEFT_SIDE 2 +#define DISPLAY_NATIVE_COVERED_TOP_SIDE 1 + +#else +#error Unknown display controller! +#endif + +#ifdef WAVESHARE_ST7789VW_HAT +#include "waveshare_st7789vw_hat.h" +#elif defined(WAVESHARE_ST7735S_HAT) +#include "waveshare_st7735s_hat.h" +#endif + +#define InitSPIDisplay InitST7735R + +void InitST7735R(void); + +void TurnDisplayOn(void); +void TurnDisplayOff(void); + +#if defined(ST7789) || defined(ST7789VW) +// Unlike all other displays developed so far, Adafruit 1.54" 240x240 ST7789 display +// actually needs to observe the CS line toggle during execution, it cannot just be always activated. +// (ST7735R does not care about this) +// TODO: It is actually untested if ST7789VW really needs this, but does work with it, so kept for now +#define DISPLAY_NEEDS_CHIP_SELECT_SIGNAL +#endif + +#endif diff --git a/usr/fbcp-ili9341/statistics.cpp b/usr/fbcp-ili9341/statistics.cpp new file mode 100644 index 0000000..0b998cd --- /dev/null +++ b/usr/fbcp-ili9341/statistics.cpp @@ -0,0 +1,292 @@ +#include "config.h" + +#include "statistics.h" + +#ifdef STATISTICS + +#include +#include +#include +#include +#include + +#include "tick.h" +#include "text.h" +#include "spi.h" +#include "util.h" +#include "mailbox.h" +#include "mem_alloc.h" +#include "dma.h" + +volatile uint64_t timeWastedPollingGPU = 0; +volatile float statsSpiBusSpeed = 0; +volatile int statsBcmCoreSpeed = 0; +volatile int statsCpuFrequency = 0; +volatile double statsCpuTemperature = 0; +double spiThreadUtilizationRate; +double spiBusDataRate; +int statsGpuPollingWasted = 0; +uint64_t statsBytesTransferred = 0; + +int frameSkipTimeHistorySize = 0; +uint64_t frameSkipTimeHistory[FRAME_HISTORY_MAX_SIZE] = {}; + +#ifdef FRAME_COMPLETION_TIME_STATISTICS + +#define FRAME_COMPLETION_HISTORY_MAX_SIZE 480 +uint64_t frameCompletionTimeHistory[FRAME_COMPLETION_HISTORY_MAX_SIZE] = {}; +int frameCompletionTimeHistorySize = 0; + +int statsFrameIntervalsY[FRAME_COMPLETION_HISTORY_MAX_SIZE] = {}; +int statsFrameIntervalsSize = 0; +int statsTargetFrameRateY = 0; +int statsAvgFrameRateIntervalY = 0; + +void AddFrameCompletionTimeMarker() +{ + for(int i = frameCompletionTimeHistorySize; i >= 1; --i) + frameCompletionTimeHistory[i] = frameCompletionTimeHistory[i-1]; + frameCompletionTimeHistory[0] = tick(); + if (frameCompletionTimeHistorySize+1 < FRAME_COMPLETION_HISTORY_MAX_SIZE) + ++frameCompletionTimeHistorySize; +} +#else +void AddFrameCompletionTimeMarker() {} +#endif + +char dmaChannelsText[32] = {}; +char fpsText[32] = {}; +char spiUsagePercentageText[32] = {}; +char spiBusDataRateText[32] = {}; +uint16_t spiUsageColor = 0, fpsColor = 0; +char statsFrameSkipText[32] = {}; +char spiSpeedText[32] = {}; +char spiSpeedText2[32] = {}; +char cpuTemperatureText[32] = {}; +uint16_t cpuTemperatureColor = 0; +char gpuPollingWastedText[32] = {}; +uint16_t gpuPollingWastedColor = 0; + +char cpuMemoryUsedText[32] = {}; +char gpuMemoryUsedText[32] = {}; + +uint64_t statsLastPrint = 0; + +void UpdateStatisticsNumbers() +{ + // BCM core and SPI bus speed + int freq = (int)MailboxRet2(0x00030002/*Get Clock Rate*/, 0x4/*CORE*/); + statsBcmCoreSpeed = freq/1000000; + statsSpiBusSpeed = (float)freq/(1000000*spi->clk); + + // CPU temperature + statsCpuTemperature = MailboxRet2(0x00030006/*Get Temperature*/, 0)/1000.0; + + // Raspberry pi main CPU speed + statsCpuFrequency = (int)MailboxRet2(0x00030002/*Get Clock Rate*/, 0x3/*ARM*/) / 1000000; +} + +void DrawStatisticsOverlay(uint16_t *framebuffer) +{ + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, fpsText, 1, 1, fpsColor, 0); + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, statsFrameSkipText, strlen(fpsText)*6, 1, RGB565(31,0,0), 0); + +#if DISPLAY_DRAWABLE_WIDTH > 130 +#ifdef USE_DMA_TRANSFERS + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, dmaChannelsText, 1, 10, RGB565(31, 44, 8), 0); +#endif +#ifdef USE_SPI_THREAD + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, spiUsagePercentageText, 75, 10, spiUsageColor, 0); +#endif + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, spiBusDataRateText, 60, 1, 0xFFFF, 0); +#endif + +#if DISPLAY_DRAWABLE_WIDTH > 180 + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, spiSpeedText, 120, 1, RGB565(31,14,20), 0); + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, spiSpeedText2, 120, 10, RGB565(10,24,31), 0); + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, cpuTemperatureText, 190, 1, cpuTemperatureColor, 0); + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, gpuPollingWastedText, 222, 1, gpuPollingWastedColor, 0); +#endif + +#if (defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) && DISPLAY_DRAWABLE_HEIGHT >= 290) || (!defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) && DISPLAY_DRAWABLE_WIDTH >= 290) + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, cpuMemoryUsedText, 250, 1, RGB565(31,50,21), 0); + DrawText(framebuffer, gpuFrameWidth, gpuFramebufferScanlineStrideBytes, gpuFrameHeight, gpuMemoryUsedText, 250, 10, RGB565(31,50,31), 0); +#endif + +#ifdef FRAME_COMPLETION_TIME_STATISTICS + +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE +#define FRAMERATE_GRAPH_WIDTH gpuFrameHeight +#define FRAMERATE_GRAPH_MIN_Y 20 +#define FRAMERATE_GRAPH_MAX_Y (gpuFrameWidth - 10) +#define AT(x,y) ((x)*(gpuFramebufferScanlineStrideBytes>>1)+(y)) +#else +#define FRAMERATE_GRAPH_WIDTH gpuFrameWidth +#define FRAMERATE_GRAPH_MIN_Y 20 +#define FRAMERATE_GRAPH_MAX_Y (gpuFrameHeight - 10) +#define AT(x,y) ((y)*(gpuFramebufferScanlineStrideBytes>>1)+(x)) +#endif + for(int i = 0; i < MIN(statsFrameIntervalsSize, FRAMERATE_GRAPH_WIDTH); ++i) + { + int x = FRAMERATE_GRAPH_WIDTH-1-i; + int y = statsFrameIntervalsY[i]; + framebuffer[AT(x, FRAMERATE_GRAPH_MIN_Y)] = RGB565(31,0,0); + framebuffer[AT(x, FRAMERATE_GRAPH_MIN_Y+1)] = RGB565(0,0,0); + framebuffer[AT(x, statsTargetFrameRateY-1)] = RGB565(0,0,0); + framebuffer[AT(x, statsTargetFrameRateY)] = RGB565(0,63,0); + framebuffer[AT(x, statsTargetFrameRateY+1)] = RGB565(0,0,0); + framebuffer[AT(x, statsAvgFrameRateIntervalY-1)] = RGB565(0,0,0); + framebuffer[AT(x, statsAvgFrameRateIntervalY)] = RGB565(29,50,7); + framebuffer[AT(x, statsAvgFrameRateIntervalY+1)] = RGB565(0,0,0); + framebuffer[AT(x, y-3)] = RGB565(0,0,0); + framebuffer[AT(x, y-2)] = RGB565(0,0,0); + framebuffer[AT(x, y-1)] = RGB565(5,11,5); + framebuffer[AT(x, y)] = RGB565(31,63,31); + framebuffer[AT(x, y+1)] = RGB565(5,11,5); + framebuffer[AT(x, y+2)] = RGB565(0,0,0); + framebuffer[AT(x, y+3)] = RGB565(0,0,0); + framebuffer[AT(x, FRAMERATE_GRAPH_MAX_Y-1)] = RGB565(0,0,0); + framebuffer[AT(x, FRAMERATE_GRAPH_MAX_Y)] = RGB565(15,30,15); + } +#endif +} + +void RefreshStatisticsOverlayText() +{ + uint64_t now = tick(); + uint64_t elapsed = now - statsLastPrint; + if (elapsed < STATISTICS_REFRESH_INTERVAL) return; + +#ifdef FRAME_COMPLETION_TIME_STATISTICS + if (frameCompletionTimeHistorySize > 1) + { + uint64_t maxInterval = 4000000 / TARGET_FRAME_RATE; + uint64_t accumIntervals = 0; + for(int i = 0; i < frameCompletionTimeHistorySize-1; ++i) + { + uint64_t interval = MIN(frameCompletionTimeHistory[i] - frameCompletionTimeHistory[i+1], maxInterval); + accumIntervals += interval; + statsFrameIntervalsY[i] = FRAMERATE_GRAPH_MAX_Y - (FRAMERATE_GRAPH_MAX_Y - FRAMERATE_GRAPH_MIN_Y) * interval / maxInterval; + } + statsTargetFrameRateY = FRAMERATE_GRAPH_MAX_Y - (FRAMERATE_GRAPH_MAX_Y - FRAMERATE_GRAPH_MIN_Y) * (1000000/TARGET_FRAME_RATE) / maxInterval; + statsAvgFrameRateIntervalY = FRAMERATE_GRAPH_MAX_Y - (FRAMERATE_GRAPH_MAX_Y - FRAMERATE_GRAPH_MIN_Y) * (accumIntervals / (frameCompletionTimeHistorySize-1)) / maxInterval; + statsFrameIntervalsSize = frameCompletionTimeHistorySize-1; + } + else + statsFrameIntervalsSize = 0; +#endif + + UpdateStatisticsNumbers(); + +#ifdef USE_DMA_TRANSFERS + sprintf(dmaChannelsText, "DMATx=%d,Rx=%d", dmaTxChannel, dmaRxChannel); +#endif +#ifdef KERNEL_MODULE_CLIENT + spiThreadUtilizationRate = 0; // TODO + int spiRate = 0; + strcpy(spiUsagePercentageText, "N/A"); +#else + uint64_t spiThreadIdleFor = __atomic_load_n(&spiThreadIdleUsecs, __ATOMIC_RELAXED); + __sync_fetch_and_sub(&spiThreadIdleUsecs, spiThreadIdleFor); + if (__atomic_load_n(&spiThreadSleeping, __ATOMIC_RELAXED)) spiThreadIdleFor += tick() - spiThreadSleepStartTime; + spiThreadUtilizationRate = MIN(1.0, MAX(0.0, 1.0 - spiThreadIdleFor / (double)STATISTICS_REFRESH_INTERVAL)); + int spiRate = (int)MIN(100, (spiThreadUtilizationRate*100.0)); + sprintf(spiUsagePercentageText, "%d%%", spiRate); +#endif + spiBusDataRate = (double)8.0 * statsBytesTransferred * 1000.0 / (elapsed / 1000.0); + + if (spiRate < 90) spiUsageColor = RGB565(0,63,0); + else if (spiRate < 100) spiUsageColor = RGB565(31,63,0); + else spiUsageColor = RGB565(31,0, 0); + + if (spiBusDataRate > 1000000) sprintf(spiBusDataRateText, "%.2fmbps", spiBusDataRate/1000000.0); + else if (spiBusDataRate > 1000) sprintf(spiBusDataRateText, "%.2fkbps", spiBusDataRate/1000.0); + else sprintf(spiBusDataRateText, "%.2fbps", spiBusDataRate); + + uint64_t wastedTime = __atomic_load_n(&timeWastedPollingGPU, __ATOMIC_RELAXED); + __atomic_fetch_sub(&timeWastedPollingGPU, wastedTime, __ATOMIC_RELAXED); + //const double gpuPollingWastedScalingFactor = 0.369; // A crude heuristic to scale time spent in useless polling to what Linux 'top' tool shows as % usage percentages + statsGpuPollingWasted = (int)(wastedTime /** gpuPollingWastedScalingFactor*/ * 100 / (now - statsLastPrint)); + + statsBytesTransferred = 0; + + if (statsBcmCoreSpeed > 0 && statsCpuFrequency > 0) sprintf(spiSpeedText, "%d/%dMHz", statsCpuFrequency, statsBcmCoreSpeed); + else spiSpeedText[0] = '\0'; + + if (statsSpiBusSpeed > 0) sprintf(spiSpeedText2, "SPI:%.3fMHz (/%d)", statsSpiBusSpeed, spi->clk); + else spiSpeedText2[0] = '\0'; + + if (statsCpuTemperature > 0) + { + sprintf(cpuTemperatureText, "%.1fc", statsCpuTemperature); + if (statsCpuTemperature >= 80) cpuTemperatureColor = RGB565(31, 0, 0); + else if (statsCpuTemperature >= 65) cpuTemperatureColor = RGB565(31, 63, 0); + else cpuTemperatureColor = RGB565(0, 63, 0); + } + + if (statsGpuPollingWasted > 0) + { + gpuPollingWastedColor = (statsGpuPollingWasted > 5) ? RGB565(31, 0, 0) : RGB565(31, 63, 0); + sprintf(gpuPollingWastedText, "+%d%%", statsGpuPollingWasted); + } + else gpuPollingWastedText[0] = '\0'; + + statsLastPrint = now; + + if (frameTimeHistorySize >= 3) + { + int numInterlacedFramesInHistory = 0; + int numProgressiveFramesInHistory = 0; + for(int i = 0; i < frameTimeHistorySize; ++i) + if (frameTimeHistory[i].interlaced) + ++numInterlacedFramesInHistory; + else + ++numProgressiveFramesInHistory; + + int frames = frameTimeHistorySize; + if (numInterlacedFramesInHistory) + frames += numProgressiveFramesInHistory; // Progressive frames count twice as interlaced + int fps = (0.5 + (frames - 1) * 1000000.0 / (frameTimeHistory[frameTimeHistorySize-1].time - frameTimeHistory[0].time)); +#ifdef NO_INTERLACING + sprintf(fpsText, "%d", fps); + fpsColor = 0xFFFF; +#else + if (numInterlacedFramesInHistory > 0) + { + if (numProgressiveFramesInHistory > 0) sprintf(fpsText, "%di/%d", fps, numProgressiveFramesInHistory); + else sprintf(fpsText, "%di", fps); + fpsColor = RGB565(31, 30, 11); + } + else + { + sprintf(fpsText, "%dp", fps); + fpsColor = 0xFFFF; + } +#endif + if (frameSkipTimeHistorySize > 0) sprintf(statsFrameSkipText, "-%d", frameSkipTimeHistorySize); + else statsFrameSkipText[0] = '\0'; + } + else + { + strcpy(fpsText, "-"); + statsFrameSkipText[0] = '\0'; + fpsColor = 0xFFFF; + } + +#if (defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) && DISPLAY_DRAWABLE_HEIGHT > 302) || (!defined(DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE) && DISPLAY_DRAWABLE_WIDTH > 302) +#define HINTSUFFIX "MB" +#else +#define HINTSUFFIX "" +#endif + + sprintf(cpuMemoryUsedText, "CPU:%.2f" HINTSUFFIX, totalCpuMemoryAllocated/1024.0/1024.0); + +#ifdef USE_DMA_TRANSFERS + if (totalGpuMemoryUsed > 0) + sprintf(gpuMemoryUsedText, "GPU:%.2f" HINTSUFFIX, totalGpuMemoryUsed/1024.0/1024.0); +#endif +} +#else +void RefreshStatisticsOverlayText() {} +void DrawStatisticsOverlay(uint16_t *) {} +#endif // ~STATISTICS diff --git a/usr/fbcp-ili9341/statistics.h b/usr/fbcp-ili9341/statistics.h new file mode 100644 index 0000000..5b2675b --- /dev/null +++ b/usr/fbcp-ili9341/statistics.h @@ -0,0 +1,46 @@ +#pragma once + +#include + +#include "gpu.h" + +void RefreshStatisticsOverlayText(void); +void DrawStatisticsOverlay(uint16_t *framebuffer); + +#ifdef STATISTICS + +extern volatile uint64_t timeWastedPollingGPU; +extern volatile float statsSpiBusSpeed; +extern volatile int statsBcmCoreSpeed; +extern volatile int statsCpuFrequency; +extern volatile double statsCpuTemperature; +extern double spiThreadUtilizationRate; +extern double spiBusDataRate; +extern int statsGpuPollingWasted; +extern uint64_t statsBytesTransferred; + +extern int frameSkipTimeHistorySize; +extern uint64_t frameSkipTimeHistory[FRAME_HISTORY_MAX_SIZE]; + +void AddFrameCompletionTimeMarker(); + +// All overlay statistics are double-buffered: the updated data fields +// are polled at certain rate, and updated in the first copy below. However +// it is not desired that any changes in the overlay numbers would trigger +// a repaint of the display, since that would skew the fps counts and similar, +// if updated overlay text would cause an update of a new frame. + +// The strings below are what is currently shown on screen, and the fields +// above specify the latest up to date fields of the data. +extern char fpsText[32]; +extern char spiUsagePercentageText[32]; +extern char spiBusDataRateText[32]; +extern uint16_t spiUsageColor, fpsColor; +extern char statsFrameSkipText[32]; +extern char spiSpeedText[32]; +extern char cpuTemperatureText[32]; +extern uint16_t cpuTemperatureColor; +extern char gpuPollingWastedText[32]; +extern uint16_t gpuPollingWastedColor; + +#endif diff --git a/usr/fbcp-ili9341/text.cpp b/usr/fbcp-ili9341/text.cpp new file mode 100644 index 0000000..1de37ee --- /dev/null +++ b/usr/fbcp-ili9341/text.cpp @@ -0,0 +1,66 @@ +#include "config.h" +#include "text.h" +#include "display.h" + +void DrawText(uint16_t *framebuffer, int framebufferWidth, int framebufferStrideBytes, int framebufferHeight, const char *text, int x, int y, uint16_t color, uint16_t bgColor) +{ +#ifdef DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE + const int W = framebufferHeight; + const int H = framebufferWidth; +#define AT(x, y) x*framebufferStrideBytes+y +#else + const int W = framebufferWidth; + const int H = framebufferHeight; +#define AT(x, y) y*framebufferStrideBytes+x +#endif + + framebufferStrideBytes >>= 1; // to uint16 elements + const int Y = y; + while(*text) + { + uint8_t ch = (uint8_t)*text; + if (ch < 32 || ch >= 127) ch = 0; + else ch -= 32; + + const int X = x; + const int endX = x + MONACO_WIDTH; + + for(y = Y-1; y < Y + monaco_height_adjust[ch]; ++y) + for(int x = X; x < endX+1; ++x) + if (x >= 0 && y >= 0 && x < W && y < H) + { + framebuffer[AT(x,y)] = bgColor; + } + + y = Y + monaco_height_adjust[ch]; + int yEnd = Y + MONACO_HEIGHT - 1; + + const uint8_t *byte = monaco_font + ch*MONACO_BYTES_PER_CHAR; + for(int i = 0; i < MONACO_BYTES_PER_CHAR; ++i, ++byte) + { + for(uint8_t bit = 1; bit; bit <<= 1) + { + if (x >= 0 && y >= 0 && x < W && y < H) + { + if ((*byte & bit)) framebuffer[AT(x,y)] = color; + else framebuffer[AT(x,y)] = bgColor; + } + ++x; + if (x == endX) + { + if (y < H) framebuffer[AT(x,y)] = bgColor; + x = X; + ++y; + if (y == yEnd) + { + i = MONACO_BYTES_PER_CHAR; + bit = 0; + break; + } + } + } + } + ++text; + x += 6; + } +} diff --git a/usr/fbcp-ili9341/text.h b/usr/fbcp-ili9341/text.h new file mode 100644 index 0000000..fbe4196 --- /dev/null +++ b/usr/fbcp-ili9341/text.h @@ -0,0 +1,1066 @@ +#pragma once + +#include + +#define MONACO_WIDTH 5 +#define MONACO_HEIGHT 8 +#define MONACO_BYTES_PER_CHAR (MONACO_WIDTH*MONACO_HEIGHT/8) + +static uint8_t monaco_font[] = { + +/* +..... +..... +..... +..... +..... +..... +..... +..... + */ 0x00,0x00,0x00,0x00,0x00, + +/* +#.... +#.... +#.... +#.... +#.... +..... +#.... +..... + !*/ 0x21,0x84,0x10,0x40,0x00, + +/* +#.#.. +#.#.. +..... +..... +..... +..... +..... +..... + "*/ 0xa5,0x00,0x00,0x00,0x00, + +/* +..##. +..##. +##### +.#.#. +##### +.##.. +.##.. +..... + #*/ 0x8c,0x7d,0xf5,0x8d,0x01, + +/* +..#.. +.#### +#.#.. +#.#.. +.##.. +..### +..#.# +####. + $*/ 0xc4,0x97,0x62,0x38,0x7d, + +/* +#...# +##..# +#..#. +..#.. +..##. +.#.## +#..#. +..... + %*/ 0x71,0x26,0xc2,0x74,0x02, + +/* +.#... +#.#.. +#.#.. +.#... +#.##. +#..#. +.###. +..... + &*/ 0xa2,0x14,0xd1,0x92,0x03, + +/* +#.... +#.... +..... +..... +..... +..... +..... +..... + '*/ 0x21,0x00,0x00,0x00,0x00, + +/* +..#.. +.#... +#.... +#.... +#.... +#.... +.#... +..#.. + (*/ 0x44,0x84,0x10,0x82,0x20, + +/* +#.... +.#... +..#.. +..#.. +..#.. +..#.. +.#... +#.... + )*/ 0x41,0x10,0x42,0x88,0x08, + +/* +.#... +###.. +###.. +.#... +..... +..... +..... +..... + **/ 0xe2,0x1c,0x01,0x00,0x00, + +/* +..#.. +..#.. +##### +..#.. +..#.. +..... +..... +..... + +*/ 0x84,0x7c,0x42,0x00,0x00, + +/* +#.... +#.... +#.... +..... +..... +..... +..... +..... + ,*/ 0x21,0x04,0x00,0x00,0x00, + +/* +###.. +..... +..... +..... +..... +..... +..... +..... + -*/ 0x07,0x00,0x00,0x00,0x00, + +/* +#.... +..... +..... +..... +..... +..... +..... +..... + .*/ 0x01,0x00,0x00,0x00,0x00, + +/* +...#. +...#. +..#.. +.#... +.#... +#.... +..... +..... + /*/ 0x08,0x11,0x21,0x02,0x00, + +/* +.##.. +#.##. +#.##. +##.#. +##.#. +##.#. +.##.. +..... + 0*/ 0xa6,0xb5,0xb5,0x96,0x01, + +/* +.#... +##... +.#... +.#... +.#... +.#... +###.. +..... + 1*/ 0x62,0x08,0x21,0xc4,0x01, + +/* +###.. +...#. +...#. +..#.. +.#... +#.... +####. +..... + 2*/ 0x07,0x21,0x22,0xc2,0x03, + +/* +###.. +...#. +...#. +.##.. +...#. +...#. +###.. +..... + 3*/ 0x07,0x21,0x83,0xd0,0x01, + +/* +...#. +..##. +.#.#. +#..#. +##### +...#. +...#. +..... + 4*/ 0x88,0xa9,0xf4,0x11,0x02, + +/* +####. +#.... +###.. +...#. +...#. +...#. +###.. +..... + 5*/ 0x2f,0x1c,0x84,0xd0,0x01, + +/* +.##.. +#.... +#.#.. +##.#. +##.#. +##.#. +.##.. +..... + 6*/ 0x26,0x94,0xb5,0x96,0x01, + +/* +####. +...#. +...#. +..#.. +.##.. +.#... +.#... +..... + 7*/ 0x0f,0x21,0x62,0x84,0x00, + +/* +.###. +#..#. +#..#. +.##.. +#..#. +#..#. +###.. +..... + 8*/ 0x2e,0x25,0x93,0xd2,0x01, + +/* +.##.. +#..#. +#..#. +#..#. +.###. +...#. +.##.. +..... + 9*/ 0x26,0xa5,0xe4,0x90,0x01, + +/* +#.... +..... +..... +..... +#.... +..... +..... +..... + :*/ 0x01,0x00,0x10,0x00,0x00, + +/* +#.... +..... +..... +..... +#.... +#.... +#.... +..... + ;*/ 0x01,0x00,0x10,0x42,0x00, + +/* +....# +..##. +##... +..##. +....# +..... +..... +..... + <*/ 0x90,0x0d,0x06,0x01,0x00, + +/* +####. +..... +####. +..... +..... +..... +..... +..... + =*/ 0x0f,0x3c,0x00,0x00,0x00, + +/* +#.... +.##.. +...## +.##.. +#.... +..... +..... +..... + >*/ 0xc1,0x60,0x13,0x00,0x00, + +/* +###.. +..#.. +..#.. +.#... +.#... +..... +.#... +..... + ?*/ 0x87,0x10,0x21,0x80,0x00, + +/* +.###. +#...# +#.### +##.## +##.## +#.##. +.##.. +..... + @*/ 0x2e,0xf6,0xbd,0x9b,0x01, + +/* +.##.. +.##.. +.##.. +.##.. +####. +####. +#..#. +..... + A*/ 0xc6,0x18,0xf3,0x5e,0x02, + +/* +##... +#.#.. +#.#.. +##... +#.#.. +#.#.. +##... +..... + B*/ 0xa3,0x94,0x51,0xca,0x00, + +/* +.###. +#.... +#.... +#.... +#.... +#.... +.###. +..... + C*/ 0x2e,0x84,0x10,0x82,0x03, + +/* +###.. +#..#. +#..#. +#..#. +#..#. +#..#. +###.. +..... + D*/ 0x27,0xa5,0x94,0xd2,0x01, + +/* +####. +#.... +#.... +####. +#.... +#.... +####. +..... + E*/ 0x2f,0x84,0x17,0xc2,0x03, + +/* +####. +#.... +#.... +####. +#.... +#.... +#.... +..... + F*/ 0x2f,0x84,0x17,0x42,0x00, + +/* +.###. +#.... +#.... +#.##. +#..#. +#..#. +.###. +..... + G*/ 0x2e,0x84,0x96,0x92,0x03, + +/* +#..#. +#..#. +#..#. +####. +#..#. +#..#. +#..#. +..... + H*/ 0x29,0xa5,0x97,0x52,0x02, + +/* +###.. +.#... +.#... +.#... +.#... +.#... +###.. +..... + I*/ 0x47,0x08,0x21,0xc4,0x01, + +/* +.###. +...#. +...#. +...#. +...#. +...#. +###.. +..... + J*/ 0x0e,0x21,0x84,0xd0,0x01, + +/* +#..#. +#..#. +#.#.. +##... +#.#.. +#.#.. +#..#. +..... + K*/ 0x29,0x95,0x51,0x4a,0x02, + +/* +#.... +#.... +#.... +#.... +#.... +#.... +###.. +..... + L*/ 0x21,0x84,0x10,0xc2,0x01, + +/* +##.## +##.## +##.## +##.## +###.# +#.#.# +#...# +..... + M*/ 0x7b,0xef,0x7d,0x6b,0x04, + +/* +#..#. +##.#. +##.#. +#.##. +#.##. +#.##. +#..#. +..... + N*/ 0x69,0xad,0xd6,0x5a,0x02, + +/* +.##.. +#..#. +#..#. +#..#. +#..#. +#..#. +.##.. +..... + O*/ 0x26,0xa5,0x94,0x92,0x01, + +/* +###.. +#..#. +#..#. +#..#. +###.. +#.... +#.... +..... + P*/ 0x27,0xa5,0x74,0x42,0x00, + +/* +.##.. +#..#. +#..#. +#..#. +#..#. +#..#. +.##.. +..#.. + Q*/ 0x26,0xa5,0x94,0x92,0x21, + +/* +##... +#.#.. +#.#.. +##... +##... +#.#.. +#.#.. +..... + R*/ 0xa3,0x94,0x31,0x4a,0x01, + +/* +###.. +#.... +#.... +.#... +..#.. +..#.. +###.. +..... + S*/ 0x27,0x04,0x41,0xc8,0x01, + +/* +##### +..#.. +..#.. +..#.. +..#.. +..#.. +..#.. +..... + T*/ 0x9f,0x10,0x42,0x08,0x01, + +/* +#..#. +#..#. +#..#. +#..#. +#..#. +#..#. +.##.. +..... + U*/ 0x29,0xa5,0x94,0x92,0x01, + +/* +#.#.. +#.#.. +#.#.. +#.#.. +#.#.. +.#... +.#... +..... + V*/ 0xa5,0x94,0x52,0x84,0x00, + +/* +#.#.# +#.#.# +###.# +##.## +.#.#. +.#.#. +.#.#. +..... + W*/ 0xb5,0xde,0xad,0x94,0x02, + +/* +.#.#. +.#.#. +..#.. +..#.. +..#.. +.#.#. +.#.#. +..... + X*/ 0x4a,0x11,0x42,0x94,0x02, + +/* +#.#.. +#.#.. +#.#.. +.#... +.#... +.#... +.#... +..... + Y*/ 0xa5,0x14,0x21,0x84,0x00, + +/* +####. +...#. +..#.. +.#... +.#... +#.... +####. +..... + Z*/ 0x0f,0x11,0x21,0xc2,0x03, + +/* +###.. +#.... +#.... +#.... +#.... +#.... +#.... +###.. + [*/ 0x27,0x84,0x10,0x42,0x38, + +/* +#.... +#.... +.#... +.#... +..#.. +...#. +..... +..... + \*/ 0x21,0x08,0x41,0x10,0x00, + +/* +###.. +..#.. +..#.. +..#.. +..#.. +..#.. +..#.. +###.. + ]*/ 0x87,0x10,0x42,0x08,0x39, + +/* +.#... +.##.. +.##.. +#..#. +..... +..... +..... +..... + ^*/ 0xc2,0x98,0x04,0x00,0x00, + +/* +####. +..... +..... +..... +..... +..... +..... +..... + _*/ 0x0f,0x00,0x00,0x00,0x00, + +/* +.#... +..... +..... +..... +..... +..... +..... +..... + `*/ 0x02,0x00,0x00,0x00,0x00, + +/* +.#### +#...# +#...# +#...# +.#### +..... +..... +..... + a*/ 0x3e,0xc6,0xe8,0x01,0x00, + +/* +#.... +#.... +####. +#...# +#...# +#...# +####. +..... + b*/ 0x21,0xbc,0x18,0xe3,0x03, + +/* +.###. +#.... +#.... +#.... +.###. +..... +..... +..... + c*/ 0x2e,0x84,0xe0,0x00,0x00, + +/* +...#. +...#. +.###. +#..#. +#..#. +#..#. +.###. +..... + d*/ 0x08,0xb9,0x94,0x92,0x03, + +/* +.##.. +#..#. +####. +#.... +.###. +..... +..... +..... + e*/ 0x26,0xbd,0xe0,0x00,0x00, + +/* +..### +.#... +####. +.#... +.#... +.#... +.#... +..... + f*/ 0x5c,0x3c,0x21,0x84,0x00, + +/* +.###. +#..#. +#..#. +#..#. +.###. +...#. +###.. +..... + g*/ 0x2e,0xa5,0xe4,0xd0,0x01, + +/* +#.... +#.... +###.. +#..#. +#..#. +#..#. +#..#. +..... + h*/ 0x21,0x9c,0x94,0x52,0x02, + +/* +.#... +..... +##... +.#... +.#... +.#... +.##.. +..... + i*/ 0x02,0x0c,0x21,0x84,0x01, + +/* +..#.. +..... +###.. +..#.. +..#.. +..#.. +..#.. +..#.. + j*/ 0x04,0x1c,0x42,0x08,0x21, + +/* +#.... +#.... +#.#.. +##... +##... +#.#.. +#..#. +..... + k*/ 0x21,0x94,0x31,0x4a,0x02, + +/* +##... +.#... +.#... +.#... +.#... +.#... +.##.. +..... + l*/ 0x43,0x08,0x21,0x84,0x01, + +/* +##### +#.#.# +#.#.# +#.#.# +#.#.# +..... +..... +..... + m*/ 0xbf,0xd6,0x5a,0x01,0x00, + +/* +###.. +#..#. +#..#. +#..#. +#..#. +..... +..... +..... + n*/ 0x27,0xa5,0x94,0x00,0x00, + +/* +.##.. +#..#. +#..#. +#..#. +.##.. +..... +..... +..... + o*/ 0x26,0xa5,0x64,0x00,0x00, + +/* +####. +#...# +#...# +#...# +####. +#.... +#.... +..... + p*/ 0x2f,0xc6,0xf8,0x42,0x00, + +/* +.###. +#..#. +#..#. +#..#. +.###. +...#. +...#. +..... + q*/ 0x2e,0xa5,0xe4,0x10,0x02, + +/* +###.. +#.#.. +#.... +#.... +#.... +..... +..... +..... + r*/ 0xa7,0x84,0x10,0x00,0x00, + +/* +.###. +#..#. +.###. +#..#. +###.. +..... +..... +..... + s*/ 0x2e,0xb9,0x74,0x00,0x00, + +/* +.#... +.#... +####. +.#... +.#... +..##. +..... +..... + t*/ 0x42,0x3c,0x21,0x18,0x00, + +/* +#..#. +#..#. +#..#. +#..#. +.###. +..... +..... +..... + u*/ 0x29,0xa5,0xe4,0x00,0x00, + +/* +#.#.. +#.#.. +#.#.. +###.. +.#... +..... +..... +..... + v*/ 0xa5,0x94,0x23,0x00,0x00, + +/* +#.#.# +###.# +###.# +####. +.#.#. +..... +..... +..... + w*/ 0xf5,0xde,0xa7,0x00,0x00, + +/* +.#.#. +.##.. +..#.. +.#.#. +.#.#. +..... +..... +..... + x*/ 0xca,0x10,0xa5,0x00,0x00, + +/* +.#.#. +.#.#. +.#.#. +..##. +..#.. +..#.. +##... +..... + y*/ 0x4a,0x29,0x46,0xc8,0x00, + +/* +####. +..#.. +.#... +#.... +####. +..... +..... +..... + z*/ 0x8f,0x88,0xf0,0x00,0x00, + +/* +.##.. +.#... +.#... +.#... +#.... +.#... +.#... +.##.. + {*/ 0x46,0x08,0x11,0x84,0x30, + +/* +#.... +#.... +#.... +#.... +#.... +#.... +..... +..... + |*/ 0x21,0x84,0x10,0x02,0x00, + +/* +##... +.#... +.#... +.#... +..#.. +.#... +.#... +##... + }*/ 0x43,0x08,0x41,0x84,0x18, + +/* +##### +..... +..... +..... +..... +..... +..... +..... + ~*/ 0x1f,0x00,0x00,0x00,0x00, + +}; + +static uint8_t monaco_font_outline[127*MONACO_BYTES_PER_CHAR] = {}; + +static const int8_t monaco_height_adjust[] = { + 6,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,1,5,3,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,1,1,2,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,6,0,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,-1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,-1,-1,-1,4, +}; + +#define RGB565(r, g, b) (((r) << 11) | ((g) << 5) | (b)) + +void DrawText(uint16_t *framebuffer, int framebufferWidth, int framebufferStrideBytes, int framebufferHeight, const char *text, int x, int y, uint16_t color, uint16_t bgColor); diff --git a/usr/fbcp-ili9341/tick.h b/usr/fbcp-ili9341/tick.h new file mode 100644 index 0000000..2036168 --- /dev/null +++ b/usr/fbcp-ili9341/tick.h @@ -0,0 +1,16 @@ +#pragma once + +#ifndef KERNEL_MODULE +#include +#include + +// Initialized in spi.cpp along with the rest of the BCM2835 peripheral: +extern volatile uint64_t *systemTimerRegister; +#define tick() (*systemTimerRegister) + +#endif + + +#ifdef NO_THROTTLING +#define usleep(x) ((void)0) +#endif diff --git a/usr/fbcp-ili9341/tontec_35_mz61581.h b/usr/fbcp-ili9341/tontec_35_mz61581.h new file mode 100644 index 0000000..b07da59 --- /dev/null +++ b/usr/fbcp-ili9341/tontec_35_mz61581.h @@ -0,0 +1,17 @@ +#pragma once + +#ifdef TONTEC_MZ61581 + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 25 +#endif + +#if !defined(GPIO_TFT_RESET_PIN) +#define GPIO_TFT_RESET_PIN 15 +#endif + +#if !defined(GPIO_TFT_BACKLIGHT) +#define GPIO_TFT_BACKLIGHT 18 +#endif + +#endif diff --git a/usr/fbcp-ili9341/util.h b/usr/fbcp-ili9341/util.h new file mode 100644 index 0000000..e3ce3d3 --- /dev/null +++ b/usr/fbcp-ili9341/util.h @@ -0,0 +1,40 @@ +#pragma once + +#define ROUND_TO_NEAREST_INT(x) ((int)lround((x))) +#define ROUND_TO_FLOOR_INT(x) ((int)(floor((x)))) +#define ROUND_TO_CEIL_INT(x) ((int)(ceil((x)))) + +#define MIN(x, y) ((x) <= (y) ? (x) : (y)) +#define MAX(x, y) ((x) >= (y) ? (x) : (y)) + +#define ABS(x) ((x) < 0 ? (-(x)) : (x)) + +#define SWAPU32(x, y) { uint32_t tmp = x; x = y; y = tmp; } + +#ifndef ALIGN_DOWN +#define ALIGN_DOWN(ptr, alignment) (((ptr)) & ~((alignment)-1)) +#endif + +#ifndef ALIGN_UP +#define ALIGN_UP(ptr, alignment) (((ptr) + ((alignment)-1)) & ~((alignment)-1)) +#endif + +#ifdef KERNEL_MODULE +#define LOG(...) do { printk(KERN_INFO __VA_ARGS__); } while(0) +#define FATAL_ERROR(msg) do { pr_alert(msg "\n"); return -1; } while(0) +#else +#define LOG(...) do { printf(__VA_ARGS__); printf("\n"); } while(0) +#define FATAL_ERROR(msg) do { fprintf(stderr, "%s\n", msg); syslog(LOG_ERR, msg); exit(1); } while(0) +#endif + +#ifdef KERNEL_MODULE +#define PRINT_FLAG_2(flag_str, flag, shift) printk(KERN_INFO flag_str ": %x", (reg & flag) >> shift) +#else +#define PRINT_FLAG_2(flag_str, flag, shift) printf(flag_str ": %x\n", (reg & flag) >> shift) +#endif + +#define PRINT_FLAG(flag) PRINT_FLAG_2(#flag, flag, flag##_SHIFT) + +#ifndef KERNEL_MODULE +#define cpu_relax() asm volatile("yield" ::: "memory") +#endif diff --git a/usr/fbcp-ili9341/waveshare35b.h b/usr/fbcp-ili9341/waveshare35b.h new file mode 100644 index 0000000..808ab9e --- /dev/null +++ b/usr/fbcp-ili9341/waveshare35b.h @@ -0,0 +1,26 @@ +#pragma once + +// Data specific to the Waveshare35b display +#ifdef WAVESHARE35B_ILI9486 + +// SPI_BUS_CLOCK_DIVISOR specifies how fast to communicate the SPI bus at. Possible values +// are 4, 6, 8, 10, 12, ... Smaller values are faster. On my Waveshare35b display, the +// following values were observed to work (on a Pi 3B): + +// core_freq=400: CDIV=14, results in 28.57MHz +// core_freq=255: CDIV=8, results in 31.875MHz + +// While the following values were seen to not work: + +// core_freq=400: CDIV=12, would result in 33.33MHz, but this was too fast for the display +// core_freq=256: CDIV=8, would result in 32.00MHz, this would work 99% of the time, but occassionally every ~few minutes would glitch a pixel or two + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 24 +#endif + +#if !defined(GPIO_TFT_RESET_PIN) +#define GPIO_TFT_RESET_PIN 25 +#endif + +#endif diff --git a/usr/fbcp-ili9341/waveshare_st7735s_hat.h b/usr/fbcp-ili9341/waveshare_st7735s_hat.h new file mode 100644 index 0000000..7f3eb53 --- /dev/null +++ b/usr/fbcp-ili9341/waveshare_st7735s_hat.h @@ -0,0 +1,20 @@ +#pragma once + +// Data specific to WaveShare 128x128, 1.44inch LCD ST7735S hat, https://www.waveshare.com/1.44inch-lcd-hat.htm +#ifdef WAVESHARE_ST7735S_HAT + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 25 +#endif + +#if !defined(GPIO_TFT_BACKLIGHT) +#define GPIO_TFT_BACKLIGHT 24 +#endif + +#if !defined(GPIO_TFT_RESET_PIN) +#define GPIO_TFT_RESET_PIN 27 +#endif + +#define DISPLAY_SHOULD_FLIP_ORIENTATION + +#endif diff --git a/usr/fbcp-ili9341/waveshare_st7789vw_hat.h b/usr/fbcp-ili9341/waveshare_st7789vw_hat.h new file mode 100644 index 0000000..29b6958 --- /dev/null +++ b/usr/fbcp-ili9341/waveshare_st7789vw_hat.h @@ -0,0 +1,18 @@ +#pragma once + +// Data specific to WaveShare 240x240, 1.3inch IPS LCD ST7789VW hat, https://www.waveshare.com/w/upload/a/ae/ST7789_Datasheet.pdf +#ifdef WAVESHARE_ST7789VW_HAT + +#if !defined(GPIO_TFT_DATA_CONTROL) +#define GPIO_TFT_DATA_CONTROL 25 +#endif + +#if !defined(GPIO_TFT_BACKLIGHT) +#define GPIO_TFT_BACKLIGHT 24 +#endif + +#if !defined(GPIO_TFT_RESET_PIN) +#define GPIO_TFT_RESET_PIN 27 +#endif + +#endif diff --git a/usr/fbcp-ili9341/wrong_colors.jpg b/usr/fbcp-ili9341/wrong_colors.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0d0de5886e0317869b13704dca2106b02e5c7808 GIT binary patch literal 141737 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%0A81dPZBu)FstOE91eJx%i61?k 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

    gh~KUb(Hso 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

    92dg~}U6hI&?$`Sg*VQjv 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

    16BiMs-*oW3YH$UV7LD%E=}tVCA;kx^zij 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 BY7+ne literal 0 HcmV?d00001 diff --git a/usr/local.desktop b/usr/local.desktop new file mode 100644 index 0000000..4c953a9 --- /dev/null +++ b/usr/local.desktop @@ -0,0 +1,3 @@ +[Desktop Entry] +Type=Application +Exec=python /home/pi/Mouse_Key.py