• Thomas Zimmermann's avatar
    drm/fb_helper: Support framebuffers in I/O memory · 222ec45f
    Thomas Zimmermann authored
    At least sparc64 requires I/O-specific access to framebuffers. This
    patch updates the fbdev console accordingly.
    
    For drivers with direct access to the framebuffer memory, the callback
    functions in struct fb_ops test for the type of memory and call the rsp
    fb_sys_ of fb_cfb_ functions. Read and write operations are implemented
    internally by DRM's fbdev helper.
    
    For drivers that employ a shadow buffer, fbdev's blit function retrieves
    the framebuffer address as struct dma_buf_map, and uses dma_buf_map
    interfaces to access the buffer.
    
    The bochs driver on sparc64 uses a workaround to flag the framebuffer as
    I/O memory and avoid a HW exception. With the introduction of struct
    dma_buf_map, this is not required any longer. The patch removes the rsp
    code from both, bochs and fbdev.
    
    v7:
    	* use min_t(size_t,) (kernel test robot)
    	* return the number of bytes read/written, if any (fbdev testcase)
    v5:
    	* implement fb_read/fb_write internally (Daniel, Sam)
    v4:
    	* move dma_buf_map changes into separate patch (Daniel)
    	* TODO list: comment on fbdev updates (Daniel)
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Tested-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201103093015.1063-11-tzimmermann@suse.de
    222ec45f
bochs_kms.c 4.65 KB