diff options
author | Erik-Jan Post <ej.lfs@xs4all.nl> | 2010-01-15 20:01:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-16 15:15:37 -0500 |
commit | 97922b5462fa543484831d42ab0fe4562b9373fc (patch) | |
tree | 548175c1bba266e3a6a8a4a2b588747f67e989fe /drivers/video/via/accel.c | |
parent | 8a3a95c32f612068be8dae74fa5fc4cf2db1592e (diff) |
viafb: fix acceleration for some chips
Fix a regression in hardware acceleration which made the accelerated
framebuffer unusable on some chips. These need extra initialization and
an extra flag which is no longer needed/available on current chips.
Signed-off-by: Erik-Jan Post <ej.lfs@xs4all.nl>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Scott Fang <ScottFang@viatech.com.cn>
Cc: Joseph Chan <JosephChan@via.com.tw>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/via/accel.c')
-rw-r--r-- | drivers/video/via/accel.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/video/via/accel.c b/drivers/video/via/accel.c index 9d4f3a49ba4a..d5077dfa9e00 100644 --- a/drivers/video/via/accel.c +++ b/drivers/video/via/accel.c | |||
@@ -137,7 +137,7 @@ static int hw_bitblt_1(void __iomem *engine, u8 op, u32 width, u32 height, | |||
137 | tmp, dst_pitch); | 137 | tmp, dst_pitch); |
138 | return -EINVAL; | 138 | return -EINVAL; |
139 | } | 139 | } |
140 | tmp = (tmp >> 3) | (dst_pitch << (16 - 3)); | 140 | tmp = VIA_PITCH_ENABLE | (tmp >> 3) | (dst_pitch << (16 - 3)); |
141 | writel(tmp, engine + 0x38); | 141 | writel(tmp, engine + 0x38); |
142 | 142 | ||
143 | if (op == VIA_BITBLT_FILL) | 143 | if (op == VIA_BITBLT_FILL) |
@@ -352,6 +352,9 @@ int viafb_init_engine(struct fb_info *info) | |||
352 | viapar->shared->vq_vram_addr = viapar->fbmem_free; | 352 | viapar->shared->vq_vram_addr = viapar->fbmem_free; |
353 | viapar->fbmem_used += VQ_SIZE; | 353 | viapar->fbmem_used += VQ_SIZE; |
354 | 354 | ||
355 | /* Init 2D engine reg to reset 2D engine */ | ||
356 | writel(0x0, engine + VIA_REG_KEYCONTROL); | ||
357 | |||
355 | /* Init AGP and VQ regs */ | 358 | /* Init AGP and VQ regs */ |
356 | switch (chip_name) { | 359 | switch (chip_name) { |
357 | case UNICHROME_K8M890: | 360 | case UNICHROME_K8M890: |