mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
drm/fb_helper: Support framebuffers in I/O memory
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: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Tested-by: Sam Ravnborg <sam@ravnborg.org> Link: https://patchwork.freedesktop.org/patch/msgid/20201103093015.1063-11-tzimmermann@suse.de
This commit is contained in:
@@ -877,18 +877,6 @@ struct drm_mode_config {
|
||||
*/
|
||||
bool prefer_shadow_fbdev;
|
||||
|
||||
/**
|
||||
* @fbdev_use_iomem:
|
||||
*
|
||||
* Set to true if framebuffer reside in iomem.
|
||||
* When set to true memcpy_toio() is used when copying the framebuffer in
|
||||
* drm_fb_helper.drm_fb_helper_dirty_blit_real().
|
||||
*
|
||||
* FIXME: This should be replaced with a per-mapping is_iomem
|
||||
* flag (like ttm does), and then used everywhere in fbdev code.
|
||||
*/
|
||||
bool fbdev_use_iomem;
|
||||
|
||||
/**
|
||||
* @quirk_addfb_prefer_xbgr_30bpp:
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user