• P
    hw/display/bcm2835_fb: Fix handling of virtual framebuffer · 01f18af9
    Peter Maydell 提交于
    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: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
    Message-id: 20180814144436.679-7-peter.maydell@linaro.org
    01f18af9
bcm2835_fb.h 2.1 KB