linux_dsm_epyc7002/drivers/video/fbdev
Wei Hu d21987d709 video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver
Without deferred IO support, hyperv_fb driver informs the host to refresh
the entire guest frame buffer at fixed rate, e.g. at 20Hz, no matter there
is screen update or not. This patch supports deferred IO for screens in
graphics mode and also enables the frame buffer on-demand refresh. The
highest refresh rate is still set at 20Hz.

Currently Hyper-V only takes a physical address from guest as the starting
address of frame buffer. This implies the guest must allocate contiguous
physical memory for frame buffer. In addition, Hyper-V Gen 2 VMs only
accept address from MMIO region as frame buffer address. Due to these
limitations on Hyper-V host, we keep a shadow copy of frame buffer
in the guest. This means one more copy of the dirty rectangle inside
guest when doing the on-demand refresh. This can be optimized in the
future with help from host. For now the host performance gain from deferred
IO outweighs the shadow copy impact in the guest.

Signed-off-by: Wei Hu <weh@microsoft.com>
Reviewed-by: Dexuan Cui <decui@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-21 20:10:44 -05:00
..
aty video: fbdev: aty[128]fb: Remove dead code 2019-08-19 15:52:27 +02:00
core backlight: drop EARLY_EVENT_BLANK support 2019-08-05 21:52:53 +02:00
geode treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
i810
intelfb video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
kyro treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
matrox docs: fb: convert docs to ReST and rename to *.rst 2019-06-14 14:21:11 -06:00
mb862xx fbdev changes for v5.3: 2019-07-09 09:55:45 -07:00
mbx video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
mmp video: fbdev/mmp/core: Use struct_size() in kzalloc() 2019-08-19 15:52:28 +02:00
nvidia video: fbdev: nvidia: Remove dead code 2019-07-23 17:16:48 +02:00
omap video: fbdev: omapfb_main: Mark expected switch fall-throughs 2019-08-09 19:51:52 -05:00
omap2 video: omapfb2: Make standard and custom panel drivers mutually exclusive 2019-08-16 21:10:09 +02:00
riva video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
savage fbdev: make unregister/unlink functions not fail 2019-06-12 20:28:52 +02:00
sis treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 27 2019-05-24 17:27:10 +02:00
vermilion treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 63 2019-05-24 17:36:46 +02:00
via video: fbdev: viafb: Remove dead code 2019-08-19 15:52:28 +02:00
68328fb.c
acornfb.c video: fbdev: acornfb: Mark expected switch fall-through 2019-08-20 19:44:01 -05:00
acornfb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
amba-clcd.c video: amba-clcd: Spout an error if of_get_display_timing() gives an error 2019-07-26 16:32:28 +02:00
amifb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
arcfb.c
arkfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
asiliantfb.c
atafb_iplan2p2.c fbdev: atafb: Remove obsolete module support 2019-04-01 17:46:55 +02:00
atafb_iplan2p4.c fbdev: atafb: Remove obsolete module support 2019-04-01 17:46:55 +02:00
atafb_iplan2p8.c fbdev: atafb: Remove obsolete module support 2019-04-01 17:46:55 +02:00
atafb_mfb.c fbdev: atafb: Remove obsolete module support 2019-04-01 17:46:55 +02:00
atafb_utils.h
atafb.c m68k: atari: Rename shifter to shifter_st to avoid conflict 2019-08-19 13:24:10 +02:00
atafb.h
atmel_lcdfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
au1100fb.c au1100fb: fix DMA API abuse 2019-06-03 16:00:08 +02:00
au1100fb.h au1100fb: fix DMA API abuse 2019-06-03 16:00:08 +02:00
au1200fb.c au1200fb: don't use DMA_ATTR_NON_CONSISTENT 2019-07-23 17:14:55 +02:00
au1200fb.h
broadsheetfb.c
bt431.h
bt455.h
bw2.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
c2p_core.h
c2p_iplan2.c
c2p_planar.c
c2p.h
carminefb_regs.h
carminefb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
carminefb.h
cg3.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
cg6.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
cg14.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
chipsfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
cirrusfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
clps711x-fb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cobalt_lcdfb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 2019-05-21 11:28:39 +02:00
controlfb.c video: fbdev: controlfb: fix warnings about comparing pointer to 0 2019-06-21 15:13:14 +02:00
controlfb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
cyber2000fb.c fbdev changes for v5.3: 2019-07-09 09:55:45 -07:00
cyber2000fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
da8xx-fb.c fbdev: da8xx: use resource management for dma 2019-08-26 17:54:00 +05:30
dnfb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
edid.h
efifb.c efifb: BGRT: Improve efifb_bgrt_sanity_check 2019-08-19 15:52:23 +02:00
ep93xx-fb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
fb-puv3.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ffb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
fm2fb.c
fsl-diu-fb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
g364fb.c
gbefb.c video: fbdev: gbefb: add COMPILE_TEST support 2019-06-07 14:38:07 +02:00
goldfishfb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
grvga.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
gxt4500.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
hecubafb.c
hgafb.c video: hgafb: fix potential NULL pointer dereference 2019-04-01 17:46:58 +02:00
hitfb.c
hpfb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
hyperv_fb.c video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver 2019-11-21 20:10:44 -05:00
i740_reg.h
i740fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
imsttfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
imxfb.c video: fbdev: imxfb: fix a typo in imxfb_probe() 2019-07-05 17:42:13 +02:00
Kconfig video: hyperv: hyperv_fb: Support deferred IO for Hyper-V frame buffer driver 2019-11-21 20:10:44 -05:00
leo.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
macfb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 139 2019-05-30 11:25:16 -07:00
macmodes.c
macmodes.h
Makefile Main MIPS changes for v5.4: 2019-09-22 09:30:30 -07:00
maxinefb.c
metronomefb.c
mx3fb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
n411.c
neofb.c fbdev: make unregister/unlink functions not fail 2019-06-12 20:28:52 +02:00
ocfb.c
offb.c video: offb: annotate implicit fall throughs 2019-02-08 19:24:46 +01:00
p9100.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
platinumfb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
platinumfb.h
pm2fb.c
pm3fb.c
pmag-aa-fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
pmag-ba-fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
pmagb-b-fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
ps3fb.c
pvr2fb.c video: fbdev: pvr2fb: remove unnecessary comparison of unsigned integer with < 0 2019-08-19 15:52:23 +02:00
pxa3xx-gcu.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
pxa3xx-gcu.h
pxa168fb.c
pxa168fb.h
pxafb.c video: pxafb: Remove cpufreq policy notifier 2019-08-26 10:02:02 +02:00
pxafb.h video: pxafb: Remove cpufreq policy notifier 2019-08-26 10:02:02 +02:00
q40fb.c
s1d13xxxfb.c
s3c2410fb.c video: fbdev: Use dev_get_drvdata() 2019-05-06 15:57:47 +02:00
s3c2410fb.h
s3c-fb.c fbdev changes for v5.3: 2019-07-09 09:55:45 -07:00
s3fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
sa1100fb.c video: sa1100fb: Remove cpufreq policy notifier 2019-08-26 10:02:02 +02:00
sa1100fb.h video: sa1100fb: Remove cpufreq policy notifier 2019-08-26 10:02:02 +02:00
sbuslib.c
sbuslib.h
sh7760fb.c docs: fb: convert docs to ReST and rename to *.rst 2019-06-14 14:21:11 -06:00
sh_mobile_lcdcfb.c video: fbdev: sh_mobile_lcdcfb: Mark expected switch fall-through 2019-08-19 15:52:26 +02:00
sh_mobile_lcdcfb.h fbdev/sh_mobile: remove sh_mobile_lcdc_display_notify 2019-06-12 20:28:11 +02:00
simplefb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
skeletonfb.c
sm501fb.c video: fbdev: sm501fb: convert platform driver to use dev_groups 2019-08-02 13:22:37 +02:00
sm712.h fbdev: sm712fb: use 1024x768 by default on non-MIPS, fix garbled display 2019-04-01 17:46:59 +02:00
sm712fb.c video: fbdev: sm712fb: Use dev_get_drvdata 2019-08-19 15:52:24 +02:00
smscufx.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
ssd1307fb.c video: ssd1307fb: Add devicetree configuration of display setup 2019-07-23 17:26:56 +02:00
sstfb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
sticore.h
stifb.c
sunxvr500.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
sunxvr1000.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
sunxvr2500.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
tcx.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
tdfxfb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
tgafb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
tmiofb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
tridentfb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
udlfb.c udlfb: Make dlfb_ops constant 2019-08-19 15:52:29 +02:00
uvesafb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
valkyriefb.c powerpc, fbdev: Use NV_CMODE and NV_VMODE only when CONFIG_PPC32 && CONFIG_PPC_PMAC && CONFIG_NVRAM 2019-01-22 10:21:45 +01:00
valkyriefb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
vesafb.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
vfb.c
vga16fb.c
vt8500lcdfb.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
vt8500lcdfb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
vt8623fb.c video: fbdev: don't print error message on framebuffer_alloc() failure 2019-06-28 12:30:08 +02:00
w100fb.c video: fbdev: w100fb: convert platform driver to use dev_groups 2019-08-02 13:21:23 +02:00
w100fb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
wm8505fb_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
wm8505fb.c video: fbdev: wm8505fb: convert platform driver to use dev_groups 2019-08-02 13:20:22 +02:00
wmt_ge_rops.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
wmt_ge_rops.h
xen-fbfront.c xen, fbfront: mark expected switch fall-through 2019-04-01 17:46:57 +02:00
xilinxfb.c