summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tiny
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2022-09-06 16:29:57 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-10-26 12:34:54 +0200
commitf5f599daa0bcb555cb4bc04f7d031a07225b9789 (patch)
treeaee55fa10c834fce3cb6ceb1dda3879648587798 /drivers/gpu/drm/tiny
parent928ac9fc1ace8a8387bc80b2cd5a525da1516817 (diff)
downloadlinux-stable-f5f599daa0bcb555cb4bc04f7d031a07225b9789.tar.gz
linux-stable-f5f599daa0bcb555cb4bc04f7d031a07225b9789.tar.bz2
linux-stable-f5f599daa0bcb555cb4bc04f7d031a07225b9789.zip
drm/bochs: fix blanking
[ Upstream commit e740ceb53e4579a7a4063712cebecac3c343b189 ] VGA_IS1_RC is the color mode register (VGA_IS1_RM the one for monochrome mode, note C vs. M at the end). So when using VGA_IS1_RC make sure the vga device is actually in color mode and set the corresponding bit in the misc register. Reproducible when booting VMs in UEFI mode with some edk2 versions (edk2 fix is on the way too). Doesn't happen in BIOS mode because in that case the vgabios already flips the bit. Fixes: 250e743915d4 ("drm/bochs: Add screen blanking support") Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Link: http://patchwork.freedesktop.org/patch/msgid/20220906142957.2763577-1-kraxel@redhat.com Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/tiny')
-rw-r--r--drivers/gpu/drm/tiny/bochs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
index 73415fa9ae0f..eb8116ff0d90 100644
--- a/drivers/gpu/drm/tiny/bochs.c
+++ b/drivers/gpu/drm/tiny/bochs.c
@@ -305,6 +305,8 @@ static void bochs_hw_fini(struct drm_device *dev)
static void bochs_hw_blank(struct bochs_device *bochs, bool blank)
{
DRM_DEBUG_DRIVER("hw_blank %d\n", blank);
+ /* enable color bit (so VGA_IS1_RC access works) */
+ bochs_vga_writeb(bochs, VGA_MIS_W, VGA_MIS_COLOR);
/* discard ar_flip_flop */
(void)bochs_vga_readb(bochs, VGA_IS1_RC);
/* blank or unblank; we need only update index and set 0x20 */