u-boot/drivers/video
Simon Glass 9beac5daf7 video: Add support for copying to a hardware framebuffer
Some architectures use a cached framebuffer and flush the cache as needed
so that changes are visible. This is supported by U-Boot.

However x86 uses an uncached framebuffer with a 'write-combining' feature
to speed up writes.  Reads are permitted but they are extremely expensive.

Unfortunately, reading from the frame buffer is quite common, e.g. to
scroll it. This makes scrolling very slow.

Add a new feature which supports copying modified parts of the frame
buffer to the uncached hardware buffer. This speeds up scrolling by at
least 10x on x86 so the extra complexity cost seems worth it.

As a starting point, add the Kconfig, update the video structures to keep
track of the buffer and add a function to do the copy.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Anatolij Gustschin <agust@denx.de>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
2020-07-09 12:33:24 +08:00
..
bridge common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
exynos common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
fonts video: add wrappers for ttf type files to .gitignore 2020-01-02 17:45:42 +01:00
imx video: ipuv3: remove non-DM code 2020-06-18 19:38:50 +02:00
meson common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
rockchip video: rockchip: fix HDMI 4K resolution 2020-06-29 17:53:16 +02:00
stm32 video: stm32: stm32_dsi: copy DSI fields 2020-06-28 01:25:52 +02:00
sunxi common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
tegra124 common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
am335x-fb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
am335x-fb.h video: omap: add support for DM/DTS 2020-03-03 13:08:14 +05:30
anx98xx-edp.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
anx9804.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
anx9804.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ati_ids.h drivers/video : move video drivers to drivers/video 2007-11-25 18:35:11 +01:00
ati_radeon_fb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
ati_radeon_fb.h Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
atmel_hlcdfb.c common: Drop linux/bug.h from common header 2020-05-18 21:19:23 -04:00
atmel_lcdfb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
backlight-uclass.c panel: Expand the backlight support 2018-10-09 04:40:27 -06:00
backlight_gpio.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
bcm2835.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
broadwell_igd.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
bus_vcxk.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
cfb_console.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
console_normal.c video: Avoid using #ifdef in video blitting code 2020-01-02 16:25:25 +01:00
console_rotate.c video: Adjust rotated console to start at right edge 2020-07-09 12:33:24 +08:00
console_truetype.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
coreboot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
da8xx-fb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
da8xx-fb.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display-uclass.c video: display: use edid_get_timing_validate() variant to filter supported EDID modes 2019-07-29 00:21:49 +02:00
dsi-host-uclass.c dm: Add a dsi host uclass 2019-10-13 23:34:43 +02:00
dw_hdmi.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
dw_mipi_dsi.c common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
efi.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
formike.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
fsl_dcu_fb.c common: Drop net.h from common header 2020-05-18 17:33:31 -04:00
fsl_diu_fb.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hitachi_tx18d42vm_lcd.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
hitachi_tx18d42vm_lcd.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
i915_reg.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ihs_video_out.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ivybridge_igd.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
Kconfig video: Add support for copying to a hardware framebuffer 2020-07-09 12:33:24 +08:00
ld9040.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
lg4573.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
logicore_dp_dpcd.h video_display: Add Xilinx LogiCore DP TX 2018-08-11 09:18:44 +02:00
logicore_dp_tx.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
logicore_dp_tx.h video_display: Add Xilinx LogiCore DP TX 2018-08-11 09:18:44 +02:00
logicore_dp_tx_regif.h video_display: Add Xilinx LogiCore DP TX 2018-08-11 09:18:44 +02:00
Makefile video: make backlight and panel drivers optional 2020-06-18 19:28:36 +02:00
mali_dp.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
mb862xx.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
mipi_dsi.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
mvebu_lcd.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
mx3fb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
mxsfb.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
omap3_dss.c omap3: allow dynamic selection of gfx_format 2013-03-08 16:41:13 -05:00
orisetech_otm8009a.c video: orisetech_otm8009a: fill characteristics of DSI data link 2020-06-28 01:28:03 +02:00
panel-uclass.c panel: Expand the backlight support 2018-10-09 04:40:27 -06:00
pwm_backlight.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
pxa_lcd.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
raydium-rm68200.c video: raydium_rm68200: fill characteristics of DSI data link 2020-06-28 01:26:55 +02:00
s6e8ax0.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
sandbox_dsi_host.c dm: Add a dsi host uclass 2019-10-13 23:34:43 +02:00
sandbox_osd.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
sandbox_osd.h video_osd: Add osd sandbox driver and tests 2018-09-28 18:26:52 +02:00
sandbox_sdl.c sandbox: video: Allow selection of rotated console 2020-07-09 12:33:24 +08:00
scf0403_lcd.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
simple_panel.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
simplefb.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
ssd2828.c common: Drop linux/delay.h from common header 2020-05-18 21:19:23 -04:00
ssd2828.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
stb_truetype.h video: stb_truetype: simplify expression 2018-03-19 09:47:02 +01:00
tda19988.c common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
tegra.c common: Drop log.h from common header 2020-05-18 21:19:18 -04:00
vesa.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
vidconsole-uclass.c video: Show an error when a vidconsole function fails 2020-07-09 12:33:24 +08:00
video-uclass.c video: Add support for copying to a hardware framebuffer 2020-07-09 12:33:24 +08:00
video_bmp.c video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer 2020-06-28 00:18:37 +02:00
video_osd-uclass.c drivers: Add OSD uclass 2018-09-28 18:26:32 +02:00
videomodes.c videomodes: add helper function to convert from ctfb to display_timing 2020-04-18 12:54:43 +02:00
videomodes.h videomodes: add helper function to convert from ctfb to display_timing 2020-04-18 12:54:43 +02:00