vt8623fb.c (0ea5c948cb64bab5bc7a5516774eb8536f05aa0d) vt8623fb.c (152609795dbf02f004c86049b75c23f4e68071d8)
1/*
2 * linux/drivers/video/vt8623fb.c - fbdev driver for
3 * integrated graphic core in VIA VT8623 [CLE266] chipset
4 *
5 * Copyright (c) 2006-2007 Ondrej Zajicek <santiago@crfreenet.org>
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file COPYING in the main directory of this archive for

--- 376 unchanged lines hidden (view full) ---

385 if (bpp != 0) {
386 info->fix.ypanstep = 1;
387 info->fix.line_length = (info->var.xres_virtual * bpp) / 8;
388
389 info->flags &= ~FBINFO_MISC_TILEBLITTING;
390 info->tileops = NULL;
391
392 /* in 4bpp supports 8p wide tiles only, any tiles otherwise */
1/*
2 * linux/drivers/video/vt8623fb.c - fbdev driver for
3 * integrated graphic core in VIA VT8623 [CLE266] chipset
4 *
5 * Copyright (c) 2006-2007 Ondrej Zajicek <santiago@crfreenet.org>
6 *
7 * This file is subject to the terms and conditions of the GNU General Public
8 * License. See the file COPYING in the main directory of this archive for

--- 376 unchanged lines hidden (view full) ---

385 if (bpp != 0) {
386 info->fix.ypanstep = 1;
387 info->fix.line_length = (info->var.xres_virtual * bpp) / 8;
388
389 info->flags &= ~FBINFO_MISC_TILEBLITTING;
390 info->tileops = NULL;
391
392 /* in 4bpp supports 8p wide tiles only, any tiles otherwise */
393 info->pixmap.blit_x = (bpp == 4) ? (1 << (8 - 1)) : (~(u32)0);
394 info->pixmap.blit_y = ~(u32)0;
393 if (bpp == 4) {
394 bitmap_zero(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
395 set_bit(8 - 1, info->pixmap.blit_x);
396 } else {
397 bitmap_fill(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
398 }
399 bitmap_fill(info->pixmap.blit_y, FB_MAX_BLIT_HEIGHT);
395
396 offset_value = (info->var.xres_virtual * bpp) / 64;
397 fetch_value = ((info->var.xres * bpp) / 128) + 4;
398
399 if (bpp == 4)
400 fetch_value = (info->var.xres / 8) + 8; /* + 0 is OK */
401
402 screen_size = info->var.yres_virtual * info->fix.line_length;
403 } else {
404 info->fix.ypanstep = 16;
405 info->fix.line_length = 0;
406
407 info->flags |= FBINFO_MISC_TILEBLITTING;
408 info->tileops = &vt8623fb_tile_ops;
409
410 /* supports 8x16 tiles only */
400
401 offset_value = (info->var.xres_virtual * bpp) / 64;
402 fetch_value = ((info->var.xres * bpp) / 128) + 4;
403
404 if (bpp == 4)
405 fetch_value = (info->var.xres / 8) + 8; /* + 0 is OK */
406
407 screen_size = info->var.yres_virtual * info->fix.line_length;
408 } else {
409 info->fix.ypanstep = 16;
410 info->fix.line_length = 0;
411
412 info->flags |= FBINFO_MISC_TILEBLITTING;
413 info->tileops = &vt8623fb_tile_ops;
414
415 /* supports 8x16 tiles only */
411 info->pixmap.blit_x = 1 << (8 - 1);
412 info->pixmap.blit_y = 1 << (16 - 1);
416 bitmap_zero(info->pixmap.blit_x, FB_MAX_BLIT_WIDTH);
417 set_bit(8 - 1, info->pixmap.blit_x);
418 bitmap_zero(info->pixmap.blit_y, FB_MAX_BLIT_HEIGHT);
419 set_bit(16 - 1, info->pixmap.blit_y);
413
414 offset_value = info->var.xres_virtual / 16;
415 fetch_value = (info->var.xres / 8) + 8;
416 screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64;
417 }
418
419 info->var.xoffset = 0;
420 info->var.yoffset = 0;

--- 527 unchanged lines hidden ---
420
421 offset_value = info->var.xres_virtual / 16;
422 fetch_value = (info->var.xres / 8) + 8;
423 screen_size = (info->var.xres_virtual * info->var.yres_virtual) / 64;
424 }
425
426 info->var.xoffset = 0;
427 info->var.yoffset = 0;

--- 527 unchanged lines hidden ---