From: Christopher Friedt <chrisfriedt@gmail.com>
To: David Airlie <airlied@linux.ie>
Cc: linux-kernel@vger.kernel.org, Christopher Friedt <chrisfriedt@gmail.com>
Subject: [PATCH 1/1] drm/vmwgfx: correct fb_fix_screeninfo.line_length
Date: Sat, 1 Feb 2014 10:26:55 -0500 [thread overview]
Message-ID: <1391268415-43219-1-git-send-email-chrisfriedt@gmail.com> (raw)
Previously, the vmwgfx_fb driver would allow users to call FBIOSET_VINFO, but it would not adjust
the FINFO properly, resulting in distorted screen rendering. The patch corrects that behaviour.
See https://bugs.gentoo.org/show_bug.cgi?id=494794 for examples.
Signed-off-by: Christopher Friedt <chrisfriedt@gmail.com>
---
drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
index ed5ce2a..021b522 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -147,7 +147,7 @@ static int vmw_fb_check_var(struct fb_var_screeninfo *var,
}
if (!vmw_kms_validate_mode_vram(vmw_priv,
- info->fix.line_length,
+ var->xres * var->bits_per_pixel/8,
var->yoffset + var->yres)) {
DRM_ERROR("Requested geom can not fit in framebuffer\n");
return -EINVAL;
@@ -162,6 +162,8 @@ static int vmw_fb_set_par(struct fb_info *info)
struct vmw_private *vmw_priv = par->vmw_priv;
int ret;
+ info->fix.line_length = info->var.xres * info->var.bits_per_pixel/8;
+
ret = vmw_kms_write_svga(vmw_priv, info->var.xres, info->var.yres,
info->fix.line_length,
par->bpp, par->depth);
@@ -177,6 +179,7 @@ static int vmw_fb_set_par(struct fb_info *info)
vmw_write(vmw_priv, SVGA_REG_DISPLAY_POSITION_Y, info->var.yoffset);
vmw_write(vmw_priv, SVGA_REG_DISPLAY_WIDTH, info->var.xres);
vmw_write(vmw_priv, SVGA_REG_DISPLAY_HEIGHT, info->var.yres);
+ vmw_write(vmw_priv, SVGA_REG_BYTES_PER_LINE, info->fix.line_length);
vmw_write(vmw_priv, SVGA_REG_DISPLAY_ID, SVGA_ID_INVALID);
}
--
1.8.3.2
next reply other threads:[~2014-02-01 15:27 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-01 15:26 Christopher Friedt [this message]
2014-03-28 0:45 Christopher Friedt
2014-03-28 0:48 ` Christopher Friedt
2014-03-28 1:45 ` Dave Airlie
2014-04-01 10:00 ` Thomas Hellstrom
[not found] ` <CAF4BF-Rmxqbbd_xroQbRTWeE2NfKAZm=Jm7SG2bNppHV2odYNA@mail.gmail.com>
2014-06-30 11:48 ` Thomas Hellstrom
2014-06-30 12:25 ` Christopher Friedt
2014-06-30 12:39 ` Thomas Hellstrom
2014-06-30 12:49 ` Christopher Friedt
2014-06-30 13:03 ` Thomas Hellstrom
2014-06-30 13:18 ` Christopher Friedt
2014-06-30 13:22 ` Thomas Hellstrom
2014-07-02 3:01 ` Christopher Friedt
2014-07-02 4:16 ` Thomas Hellstrom
[not found] ` <CAF4BF-SZp64iD_imNH42qXaENWbNzgBOiVaSeUMMBScrSc6VEw@mail.gmail.com>
2014-07-02 22:19 ` Christopher Friedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1391268415-43219-1-git-send-email-chrisfriedt@gmail.com \
--to=chrisfriedt@gmail.com \
--cc=airlied@linux.ie \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome