Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263909AbTEOEKI (ORCPT ); Thu, 15 May 2003 00:10:08 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S263902AbTEOEKH (ORCPT ); Thu, 15 May 2003 00:10:07 -0400 Received: from phoenix.mvhi.com ([195.224.96.167]:62984 "EHLO phoenix.infradead.org") by vger.kernel.org with ESMTP id S263901AbTEOEJy (ORCPT ); Thu, 15 May 2003 00:09:54 -0400 Date: Thu, 15 May 2003 05:22:37 +0100 (BST) From: James Simmons To: Linus Torvalds cc: Linux Fbdev development list , Linux Kernel Mailing List Subject: Re: Fbdev patch In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4482 Lines: 147 > Why the heck is this changing back and forth. Please keep the "fb_" > prefix, and don't change it back and forth, the constant changing just > confuses everybody way way too much. Old patch. Its from 3/4/03. He is a better patch. # This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.1042.15.53 -> 1.1042.34.1 # drivers/video/fbmem.c 1.73 -> 1.74 # drivers/video/g364fb.c 1.20 -> 1.21 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 03/04/21 jsimmons@kozmo.(none) 1.1042.34.1 # # [G354 FBDEV] Now use the final cursor api. # -------------------------------------------- # diff -Nru a/drivers/video/fbmem.c b/drivers/video/fbmem.c --- a/drivers/video/fbmem.c Mon May 12 11:06:22 2003 +++ b/drivers/video/fbmem.c Mon May 12 11:06:22 2003 @@ -726,8 +725,6 @@ x <= info->var.xres-fb_logo.logo->width; x += (fb_logo.logo->width + 8)) { image.dx = x; info->fbops->fb_imageblit(info, &image); - //atomic_dec(&info->pixmap.count); - //smp_mb__after_atomic_dec(); } if (palette != NULL) diff -Nru a/drivers/video/g364fb.c b/drivers/video/g364fb.c --- a/drivers/video/g364fb.c Mon May 12 11:06:22 2003 +++ b/drivers/video/g364fb.c Mon May 12 11:06:22 2003 @@ -127,20 +127,55 @@ int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor) { + + /* Turn the cursor off before we start changing it. */ + *(unsigned int *) CTLA_REG |= CURS_TOGGLE; + + if (cursor->set & FB_CUR_SETHOT) + info->cursor.hot = cursor->hot; - switch (cursor->enable) { - case CM_ERASE: - *(unsigned int *) CTLA_REG |= CURS_TOGGLE; - break; + if (cursor->set & FB_CUR_SETPOS) { + unsigned int tmp; + + info->cursor.image.dx = cursor->image.dx; + info->cursor.image.dy = cursor->image.dy; + + tmp = cursor->image.dy - info->var.yoffset; + tmp |= (cursor->image.dx - info->var.xoffset) << 12; + + *(unsigned int *) CURS_POS_REG = tmp; + } - case CM_MOVE: - case CM_DRAW: + if (cursor->set & FB_CUR_SETSIZE) { + info->cursor.image.height = cursor->image.height; + info->cursor.image.width = cursor->image.width; + + /* set the whole cursor to transparent */ + for (i = 0; i < 512; i++) + *(unsigned short *) (CURS_PAT_REG + i * 8) = 0; + } + + if (cursor->set & FB_CUR_SETCMAP) { + volatile unsigned int *curs_pal_ptr = + (volatile unsigned int *) CURS_PAL_REG; + + /* setup cursor */ + curs_pal_ptr[0] |= 0x00ffffff; + curs_pal_ptr[2] |= 0x00ffffff; + curs_pal_ptr[4] |= 0x00ffffff; + } + + if (cursor->set & FB_CUR_SETSHAPE) { + /* + * switch the last two lines to cursor palette 3 + * we assume here, that FONTSIZE_X is 8 + */ + *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff; + *(unsigned short *) (CURS_PAT_REG + 15 * 64) = 0xffff; + } + + if (info->cursor.enable) *(unsigned int *) CTLA_REG &= ~CURS_TOGGLE; - *(unsigned int *) CURS_POS_REG = - ((x * fontwidth(p)) << 12) | ((y * fontheight(p)) - - info->var.yoffset); - break; - } return 0; } @@ -196,10 +231,6 @@ */ int __init g364fb_init(void) { - volatile unsigned int *pal_ptr = - (volatile unsigned int *) CLR_PAL_REG; - volatile unsigned int *curs_pal_ptr = - (volatile unsigned int *) CURS_PAL_REG; int mem, i, j; /* TBD: G364 detection */ @@ -212,23 +243,6 @@ (*((volatile unsigned int *) VDISPLAY_REG) & 0x00ffffff) / 2; *(volatile unsigned int *) CTLA_REG |= ENABLE_VTG; - /* setup cursor */ - curs_pal_ptr[0] |= 0x00ffffff; - curs_pal_ptr[2] |= 0x00ffffff; - curs_pal_ptr[4] |= 0x00ffffff; - - /* - * first set the whole cursor to transparent - */ - for (i = 0; i < 512; i++) - *(unsigned short *) (CURS_PAT_REG + i * 8) = 0; - - /* - * switch the last two lines to cursor palette 3 - * we assume here, that FONTSIZE_X is 8 - */ - *(unsigned short *) (CURS_PAT_REG + 14 * 64) = 0xffff; - *(unsigned short *) (CURS_PAT_REG + 15 * 64) = 0xffff; fb_var.xres_virtual = fbvar.xres; fb_fix.line_length = (xres / 8) * fb_var.bits_per_pixel; fb_fix.smem_start = 0x40000000; /* physical address */ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/