diff options
Diffstat (limited to 'drivers/video/via')
-rw-r--r-- | drivers/video/via/accel.c | 5 | ||||
-rw-r--r-- | drivers/video/via/viafbdev.c | 11 |
2 files changed, 10 insertions, 6 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: |
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c index d8df17a7d5fc..3028e7ddc3b5 100644 --- a/drivers/video/via/viafbdev.c +++ b/drivers/video/via/viafbdev.c | |||
@@ -177,16 +177,15 @@ static int viafb_set_par(struct fb_info *info) | |||
177 | } | 177 | } |
178 | 178 | ||
179 | if (vmode_index != VIA_RES_INVALID) { | 179 | if (vmode_index != VIA_RES_INVALID) { |
180 | viafb_setmode(vmode_index, info->var.xres, info->var.yres, | ||
181 | info->var.bits_per_pixel, vmode_index1, | ||
182 | viafb_second_xres, viafb_second_yres, viafb_bpp1); | ||
183 | |||
184 | viafb_update_fix(info); | 180 | viafb_update_fix(info); |
185 | viafb_bpp = info->var.bits_per_pixel; | 181 | viafb_bpp = info->var.bits_per_pixel; |
186 | if (info->var.accel_flags & FB_ACCELF_TEXT) | 182 | if (info->var.accel_flags & FB_ACCELF_TEXT) |
187 | info->flags &= ~FBINFO_HWACCEL_DISABLED; | 183 | info->flags &= ~FBINFO_HWACCEL_DISABLED; |
188 | else | 184 | else |
189 | info->flags |= FBINFO_HWACCEL_DISABLED; | 185 | info->flags |= FBINFO_HWACCEL_DISABLED; |
186 | viafb_setmode(vmode_index, info->var.xres, info->var.yres, | ||
187 | info->var.bits_per_pixel, vmode_index1, | ||
188 | viafb_second_xres, viafb_second_yres, viafb_bpp1); | ||
190 | } | 189 | } |
191 | 190 | ||
192 | return 0; | 191 | return 0; |
@@ -872,7 +871,9 @@ static int viafb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
872 | if (info->flags & FBINFO_HWACCEL_DISABLED || info != viafbinfo) | 871 | if (info->flags & FBINFO_HWACCEL_DISABLED || info != viafbinfo) |
873 | return -ENODEV; | 872 | return -ENODEV; |
874 | 873 | ||
875 | if (chip_name == UNICHROME_CLE266 && viapar->iga_path == IGA2) | 874 | /* LCD ouput does not support hw cursors (at least on VN896) */ |
875 | if ((chip_name == UNICHROME_CLE266 && viapar->iga_path == IGA2) || | ||
876 | viafb_LCD_ON) | ||
876 | return -ENODEV; | 877 | return -ENODEV; |
877 | 878 | ||
878 | viafb_show_hw_cursor(info, HW_Cursor_OFF); | 879 | viafb_show_hw_cursor(info, HW_Cursor_OFF); |