Skip to contentSkip to conversation

fbdev: Clean up mach64 cursor implementation

PATCH New Antonino A. Daplas 1 participant 1 message Oct 20, 2004 Framebuffer layer

lore
Share & tools
lore
#0 lore raw

PATCH 8/8 fbdev: Clean up mach64 cursor implementation

- remove/modify all references to info->cursor

---
 mach64_cursor.c |   35 ++++++++++-------------------------
 1 files changed, 10 insertions(+), 25 deletions(-)
drivers/video/aty/mach64_cursor.c +10 -25
diff -Nru a/drivers/video/aty/mach64_cursor.c b/drivers/video/aty/mach64_cursor.c
@@ -88,22 +88,9 @@
 	wait_for_fifo(1, par);
 	aty_st_le32(GEN_TEST_CNTL, aty_ld_le32(GEN_TEST_CNTL, par) & ~HWCURSOR_ENABLE, par);
 
-	/* Set size */
-	if (cursor->set & FB_CUR_SETSIZE) {
-		info->cursor.image.height = cursor->image.height;
-		info->cursor.image.width = cursor->image.width;
-	}
-
-	/* Set hot spot */
-	if  (cursor->set & FB_CUR_SETHOT)
-		info->cursor.hot = cursor->hot;
-
 	/* set position */
 	if (cursor->set & FB_CUR_SETPOS) {
-		info->cursor.image.dx = cursor->image.dx;
-		info->cursor.image.dy = cursor->image.dy;
-
-		x = info->cursor.image.dx - info->cursor.hot.x - info->var.xoffset;
+		x = cursor->image.dx - cursor->hot.x - info->var.xoffset;
 		if (x < 0) {
 			xoff = -x;
 			x = 0;
@@ -111,7 +98,7 @@
 			xoff = 0;
 		}
 
-		y = info->cursor.image.dy - info->cursor.hot.y - info->var.yoffset;
+		y = cursor->image.dy - cursor->hot.y - info->var.yoffset;
 		if (y < 0) {
 			yoff = -y;
 			y = 0;
@@ -128,7 +115,7 @@
 		wait_for_fifo(4, par);
 		aty_st_le32(CUR_OFFSET, (info->fix.smem_len >> 3) + (yoff << 1), par);
 		aty_st_le32(CUR_HORZ_VERT_OFF,
-			    ((u32) (64 - info->cursor.image.height + yoff) << 16) | xoff,
+			    ((u32) (64 - cursor->image.height + yoff) << 16) | xoff,
 			    par);
 		aty_st_le32(CUR_HORZ_VERT_POSN, ((u32) y << 16) | x, par);
 	}
@@ -137,10 +124,8 @@
 	if (cursor->set & FB_CUR_SETCMAP) {
 		u32 fg_idx, bg_idx, fg, bg;
 
-		info->cursor.image.fg_color = cursor->image.fg_color;
-		info->cursor.image.bg_color = cursor->image.bg_color;
-		fg_idx = info->cursor.image.fg_color;
-		bg_idx = info->cursor.image.bg_color;
+		fg_idx = cursor->image.fg_color;
+		bg_idx = cursor->image.bg_color;
 
 		fg = (info->cmap.red[fg_idx] << 24) |
 		     (info->cmap.green[fg_idx] << 16) |
@@ -155,12 +140,12 @@
 		aty_st_le32(CUR_CLR1, fg, par);
 	}
 
-	if (cursor->set & FB_CUR_SETSHAPE) {
+	if (cursor->set & (FB_CUR_SETSHAPE | FB_CUR_SETIMAGE)) {
 	    u8 *src = (u8 *)cursor->image.data;
-	    u8 *msk = (u8 *)info->cursor.mask;
+	    u8 *msk = (u8 *)cursor->mask;
 	    u8 *dst = (u8 *)info->sprite.addr;
-	    unsigned int width = (info->cursor.image.width + 7) >> 3;
-	    unsigned int height = info->cursor.image.height;
+	    unsigned int width = (cursor->image.width + 7) >> 3;
+	    unsigned int height = cursor->image.height;
 	    unsigned int align = info->sprite.scan_align;
 
 	    unsigned int i, j, offset;
@@ -175,7 +160,7 @@
 		for (j = 0; j < width; j++) {
 			b = *src++;
 			m = *msk++;
-			switch (info->cursor.rop) {
+			switch (cursor->rop) {
 			case ROP_XOR:
 			    // Upper 4 bits of mask data
 			    fb_writeb(cursor_mask_lookup[m >> 4 ] |

-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl