drm/bochs: Use shadow buffer for bochs framebuffer console
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 3 Jul 2019 07:58:34 +0000 (09:58 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 9 Jul 2019 08:25:31 +0000 (10:25 +0200)
commitf1f8555dfb9a70a2f42e7ee578143dcfd5abb02b
tree0953083246e6a20b32643ba266cecfd4b06667f3
parent8a99de3dc0dd417e1f46c8e27e63b1363ecfb969
drm/bochs: Use shadow buffer for bochs framebuffer console

The bochs driver (and virtual hardware) requires buffer objects to
reside in video ram to display them to the screen. So it can not
display the framebuffer console because the respective buffer object
is permanently pinned in system memory.

Using a shadow buffer for the console solves this problem. The console
emulation will pin the buffer object only during updates from the shadow
buffer. Otherwise, the bochs driver can freely relocated the buffer
between system memory and video ram.

v2:
* select shadow FB via struct drm_mode_config.prefer_shadow_fbdev

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/315833/
drivers/gpu/drm/bochs/bochs_kms.c