| From 9715e0ef75931e97b22ea14da9509b849572ce54 Mon Sep 17 00:00:00 2001 |
| From: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> |
| Date: Wed, 22 Sep 2010 02:33:52 +0000 |
| Subject: [PATCH] viafb: use proper register for colour when doing fill ops |
| |
| commit efd4f6398dc92b5bf392670df862f42a19f34cf2 upstream. |
| |
| The colour was written to a wrong register for fillrect operations. |
| This sometimes caused empty console space (for example after 'clear') |
| to have a different colour than desired. Fix this by writing to the |
| correct register. |
| Many thanks to Daniel Drake and Jon Nettleton for pointing out this |
| issue and pointing me in the right direction for the fix. |
| |
| Fixes http://dev.laptop.org/ticket/9323 |
| |
| Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> |
| Cc: Joseph Chan <JosephChan@via.com.tw> |
| Cc: Daniel Drake <dsd@laptop.org> |
| Cc: Jon Nettleton <jon.nettleton@gmail.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c |
| index d5077df..4400f91 100644 |
| --- a/drivers/video/via/accel.c |
| +++ b/drivers/video/via/accel.c |
| @@ -277,11 +277,12 @@ static int hw_bitblt_2(void __iomem *engine, u8 op, u32 width, u32 height, |
| writel(tmp, engine + 0x1C); |
| } |
| |
| - if (op != VIA_BITBLT_COLOR) |
| + if (op == VIA_BITBLT_FILL) { |
| + writel(fg_color, engine + 0x58); |
| + } else if (op == VIA_BITBLT_MONO) { |
| writel(fg_color, engine + 0x4C); |
| - |
| - if (op == VIA_BITBLT_MONO) |
| writel(bg_color, engine + 0x50); |
| + } |
| |
| if (op == VIA_BITBLT_FILL) |
| ge_cmd |= fill_rop << 24 | 0x00002000 | 0x00000001; |
| -- |
| 1.7.4.4 |
| |