-void aty_set_cursor_color(struct fb_info *info)
-{
- struct atyfb_par *par = (struct atyfb_par *) info->par;
- struct aty_cursor *c = par->cursor;
- const u8 *pixel = cursor_pixel_map; /* ++Geert: Why?? */
- const u8 *red = cursor_color_map;
- const u8 *green = cursor_color_map;
- const u8 *blue = cursor_color_map;
- u32 fg_color, bg_color;
-
- if (!c)
- return;
-
-#ifdef __sparc__
- if (par->mmaped)
- return;
-#endif
- fg_color = (u32) red[0] << 24;
- fg_color |= (u32) green[0] << 16;
- fg_color |= (u32) blue[0] << 8;
- fg_color |= (u32) pixel[0];
-
- bg_color = (u32) red[1] << 24;
- bg_color |= (u32) green[1] << 16;
- bg_color |= (u32) blue[1] << 8;
- bg_color |= (u32) pixel[1];
-
- wait_for_fifo(2, par);
- aty_st_le32(CUR_CLR0, fg_color, par);
- aty_st_le32(CUR_CLR1, bg_color, par);
-}
-
-void aty_set_cursor_shape(struct fb_info *info)
-{
- struct atyfb_par *par = (struct atyfb_par *) info->par;
- struct fb_cursor *cursor = &info->cursor;
- struct aty_cursor *c = par->cursor;
- u8 *ram, m, b;
- int x, y;
-
- if (!c)
- return;
-#ifdef __sparc__
- if (par->mmaped)
- return;
-#endif
-
- ram = c->ram;
- for (y = 0; y < cursor->image.height; y++) {
- for (x = 0; x < cursor->image.width >> 2; x++) {
- m = c->mask[x][y];
- b = c->bits[x][y];
- fb_writeb(cursor_mask_lookup[m >> 4] |
- cursor_bits_lookup[(b & m) >> 4], ram++);
- fb_writeb(cursor_mask_lookup[m & 0x0f] |
- cursor_bits_lookup[(b & m) & 0x0f],
- ram++);
- }
- for (; x < 8; x++) {
- fb_writeb(0xaa, ram++);
- fb_writeb(0xaa, ram++);
- }
- }
- fb_memset(ram, 0xaa, (64 - cursor->image.height) * 16);
-}
-
-static void aty_set_cursor(struct fb_info *info)