qemu/hw/display
Peter Maydell 01f18af98b hw/display/bcm2835_fb: Fix handling of virtual framebuffer
The raspi framebuffir in bcm2835_fb supports the definition
of a virtual "viewport", which is smaller than the full
physical framebuffer size and at an adjustable offset within
it. Only the viewport area is sent to the screen. This allows
the guest to do things like double buffering, or scrolling
by adjusting the viewport origin. Currently QEMU doesn't
implement this at all.

Add support for this feature:
 * the property mailbox code needs to distinguish the
   virtual width/height from the physical width/height
 * the framebuffer code needs to do something with the
   virtual width/height/origin information

Note that the wiki documentation on the semantics of the
virtual and physical height and width has it the wrong way
around -- the virtual size is the size of the allocated
buffer, and the physical size is the size of the display,
so the virtual size is always the same as or larger than
the physical.

If the viewport size is set smaller than the physical
screen size, we ignore the viewport settings completely
and just display the physical screen area.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20180814144436.679-7-peter.maydell@linaro.org
2018-08-24 13:17:49 +01:00
..
ads7846.c
bcm2835_fb.c hw/display/bcm2835_fb: Fix handling of virtual framebuffer 2018-08-24 13:17:49 +01:00
blizzard.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
bochs-display.c * IEC units series (Philippe) 2018-07-02 19:07:19 +01:00
cg3.c fix "Missing break in switch" coverity reports 2018-08-23 13:32:50 +02:00
cirrus_vga_rop2.h
cirrus_vga_rop.h
cirrus_vga.c fix "Missing break in switch" coverity reports 2018-08-23 13:32:50 +02:00
dpcd.c maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
exynos4210_fimd.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
framebuffer.h
g364fb.c hw/display: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
jazz_led.c
Makefile.objs hw/display/ramfb: Compile the ramfb code only when CONFIG_FW_CFG_DMA is set 2018-08-21 09:47:16 +02:00
milkymist-tmu2.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
milkymist-vgafb_template.h
milkymist-vgafb.c
omap_dss.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
omap_lcd_template.h
omap_lcdc.c
pl110_template.h
pl110.c pl110: Implement vertical compare/next base interrupts 2018-01-25 11:45:30 +00:00
pxa2xx_lcd.c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pxa2xx_template.h
qxl-logger.c
qxl-render.c qxl: fix local renderer crash 2018-05-07 11:47:57 +02:00
qxl.c qxl: drop unused generation variable 2018-08-21 09:51:40 +02:00
qxl.h qxl: drop unused generation variable 2018-08-21 09:51:40 +02:00
ramfb-standalone.c hw/display: add standalone ramfb device 2018-06-18 11:22:15 +02:00
ramfb.c ramfb: enable vgabios 2018-07-02 17:21:52 +02:00
sii9022.c hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
sm501_template.h
sm501.c sm501: Fix warning about unreachable code 2018-07-16 11:19:10 +10:00
ssd0303.c hw/i2c: Use DeviceClass::realize instead of I2CSlaveClass::init 2018-06-01 15:14:31 +02:00
ssd0323.c
tc6393xb_template.h
tc6393xb.c hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-06-01 14:15:10 +02:00
tcx.c memory: hide memory_region_sync_dirty_bitmap behind DirtyBitmapSnapshot 2018-02-13 16:15:09 +01:00
trace-events hw/sii9022: Add support for Silicon Image SII9022 2018-03-01 11:13:36 +00:00
vga_int.h vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga_regs.h hw/display/vga: "vga.h" only contains registers defs, rename it "vga_regs.h" 2017-12-18 17:07:02 +03:00
vga-helpers.h
vga-isa-mm.c hw/display/vga-isa-mm: Convert away from old_mmio 2018-08-21 09:52:22 +02:00
vga-isa.c vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga-pci.c vga: disable global_vmstate for 3.0+ machine types 2018-07-03 11:19:49 +02:00
vga.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
virtio-gpu-3d.c virtio-gpu-3d: add support for second capability set (v4) 2018-02-26 13:41:34 +01:00
virtio-gpu-pci.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
virtio-gpu.c virtio-gpu: fix crashes upon warm reboot with vga mode 2018-08-07 15:03:58 +01:00
virtio-vga.c virtio-gpu: fix crashes upon warm reboot with vga mode 2018-08-07 15:03:58 +01:00
vmware_vga.c vga: disable global_vmstate, virtio-gpu scanout tracking fixes. 2018-07-03 21:09:27 +01:00
xenfb.c hw/display: Use the IEC binary prefix definitions 2018-07-02 15:41:13 +02:00
xlnx_dp.c hw/display/xlnx_dp: Move problematic code from instance_init to realize 2018-07-17 13:12:49 +01:00