drm/nouveau: Fix fbcon corruption with font width not divisible by 8
On 10/13/2010 04:37 AM, Ben Hutchings wrote:
> From: Marcin KoĆcielnicki <koriakin@0x04.net> > > commit c82b88d578847909797945824851a6a9a84f9c20 upstream. > > NV50 is nice and has a switch that autoaligns stuff for us. Pre-NV50, > we need to align input bitmap width manually. > > Signed-off-by: Marcin KoĆcielnicki <koriakin@0x04.net> > Signed-off-by: Francisco Jerez <currojerez@riseup.net> > Signed-off-by: Ben Skeggs <bskeggs@redhat.com> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > --- > drivers/gpu/drm/nouveau/nv04_fbcon.c | 6 +++--- > drivers/gpu/drm/nouveau/nv50_fbcon.c | 2 +- > 2 files changed, 4 insertions(+), 4 deletions(-) > ACK > diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c > index 3da90c2..813b25c 100644 > --- a/drivers/gpu/drm/nouveau/nv04_fbcon.c > +++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c > @@ -118,8 +118,8 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) > return; > } > > - width = ALIGN(image->width, 32); > - dsize = (width * image->height) >> 5; > + width = ALIGN(image->width, 8); > + dsize = ALIGN(width * image->height, 32) >> 5; > > if (info->fix.visual == FB_VISUAL_TRUECOLOR || > info->fix.visual == FB_VISUAL_DIRECTCOLOR) { > @@ -136,8 +136,8 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) > ((image->dx + image->width) & 0xffff)); > OUT_RING(chan, bg); > OUT_RING(chan, fg); > - OUT_RING(chan, (image->height << 16) | image->width); > OUT_RING(chan, (image->height << 16) | width); > + OUT_RING(chan, (image->height << 16) | image->width); > OUT_RING(chan, (image->dy << 16) | (image->dx & 0xffff)); > > while (dsize) { > diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c > index 993c712..25a3cd8 100644 > --- a/drivers/gpu/drm/nouveau/nv50_fbcon.c > +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c > @@ -233,7 +233,7 @@ nv50_fbcon_accel_init(struct fb_info *info) > BEGIN_RING(chan, NvSub2D, 0x0808, 3); > OUT_RING(chan, 0); > OUT_RING(chan, 0); > - OUT_RING(chan, 0); > + OUT_RING(chan, 1); > BEGIN_RING(chan, NvSub2D, 0x081c, 1); > OUT_RING(chan, 1); > BEGIN_RING(chan, NvSub2D, 0x0840, 4); -- kernel-team mailing list kernel-team@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kernel-team |
drm/nouveau: Fix fbcon corruption with font width not divisible by 8
Patch depends on this simple change which I pulled into the drm33 tree:
Author: Matt Turner <mattst88@gmail.com> Date: Wed Feb 24 23:27:10 2010 -0500 drm/nouveau: use ALIGN instead of open coding it CC: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com> diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04 index fd01caa..3da90c2 100644 --- a/drivers/gpu/drm/nouveau/nv04_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c @@ -118,7 +118,7 @@ nv04_fbcon_imageblit(struct fb_info *info, const struct fb_i return; } - width = (image->width + 31) & ~31; + width = ALIGN(image->width, 32); dsize = (width * image->height) >> 5; if (info->fix.visual == FB_VISUAL_TRUECOLOR || diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50 index 0f57cdf..993c712 100644 --- a/drivers/gpu/drm/nouveau/nv50_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c @@ -109,7 +109,7 @@ nv50_fbcon_imageblit(struct fb_info *info, const struct fb_i return; } - width = (image->width + 31) & ~31; + width = ALIGN(image->width, 32); dwords = (width * image->height) >> 5; BEGIN_RING(chan, NvSub2D, 0x0814, 2); diff --git a/drivers/gpu/drm/nouveau/nv50_instmem.c b/drivers/gpu/drm/nouveau/nv index f0dc4e3..de1f5b0 100644 --- a/drivers/gpu/drm/nouveau/nv50_instmem.c +++ b/drivers/gpu/drm/nouveau/nv50_instmem.c @@ -390,7 +390,7 @@ nv50_instmem_populate(struct drm_device *dev, struct nouveau if (gpuobj->im_backing) return -EINVAL; - *sz = (*sz + (NV50_INSTMEM_PAGE_SIZE-1)) & ~(NV50_INSTMEM_PAGE_SIZE-1); + *sz = ALIGN(*sz, NV50_INSTMEM_PAGE_SIZE); if (*sz == 0) return -EINVAL; -- kernel-team mailing list kernel-team@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kernel-team |
| All times are GMT. The time now is 10:34 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.