|
|
|
@ -804,85 +804,6 @@ video_dump_reg (void) |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_VIDEO_HW_CURSOR |
|
|
|
|
/***************************************************************
|
|
|
|
|
* Set Hardware Cursor in Pixel |
|
|
|
|
*/ |
|
|
|
|
void |
|
|
|
|
video_set_hw_cursor (int x, int y) |
|
|
|
|
{ |
|
|
|
|
int sig_x = 0, sig_y = 0; |
|
|
|
|
if (x < 0) { |
|
|
|
|
x *= -1; |
|
|
|
|
sig_x = 1; |
|
|
|
|
} |
|
|
|
|
if (y < 0) { |
|
|
|
|
y *= -1; |
|
|
|
|
sig_y = 1; |
|
|
|
|
} |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa4, x & 0xff); |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa5, (x >> 8) & 0x7); |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa6, y & 0xff); |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa7, (y >> 8) & 0x7); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/***************************************************************
|
|
|
|
|
* Init Hardware Cursor. To know the size of the Cursor, |
|
|
|
|
* we have to know the Font size. |
|
|
|
|
*/ |
|
|
|
|
void |
|
|
|
|
video_init_hw_cursor (int font_width, int font_height) |
|
|
|
|
{ |
|
|
|
|
unsigned char xr_80; |
|
|
|
|
unsigned long *curs, pattern; |
|
|
|
|
int i; |
|
|
|
|
int cursor_start; |
|
|
|
|
GraphicDevice *pGD = (GraphicDevice *) & ctfb; |
|
|
|
|
|
|
|
|
|
cursor_start = pGD->dprBase; |
|
|
|
|
xr_80 = ctRead_i (CT_XR_O, 0x80); |
|
|
|
|
/* set start address */ |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa2, (cursor_start >> 8) & 0xf0); |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa3, (cursor_start >> 16) & 0x3f); |
|
|
|
|
/* set cursor shape */ |
|
|
|
|
curs = (unsigned long *) cursor_start; |
|
|
|
|
i = 0; |
|
|
|
|
while (i < 0x400) { |
|
|
|
|
curs[i++] = 0xffffffff; /* AND mask */ |
|
|
|
|
curs[i++] = 0xffffffff; /* AND mask */ |
|
|
|
|
curs[i++] = 0; /* XOR mask */ |
|
|
|
|
curs[i++] = 0; /* XOR mask */ |
|
|
|
|
/* Transparent */ |
|
|
|
|
} |
|
|
|
|
pattern = 0xffffffff >> font_width; |
|
|
|
|
i = 0; |
|
|
|
|
while (i < (font_height * 2)) { |
|
|
|
|
curs[i++] = pattern; /* AND mask */ |
|
|
|
|
curs[i++] = pattern; /* AND mask */ |
|
|
|
|
curs[i++] = 0; /* XOR mask */ |
|
|
|
|
curs[i++] = 0; /* XOR mask */ |
|
|
|
|
/* Cursor Color 0 */ |
|
|
|
|
} |
|
|
|
|
/* set blink rate */ |
|
|
|
|
ctWrite_i (CT_FP_O, 0x19, 0xf); |
|
|
|
|
|
|
|
|
|
/* set cursors colors */ |
|
|
|
|
xr_80 = ctRead_i (CT_XR_O, 0x80); |
|
|
|
|
xr_80 |= 0x1; /* alternate palette select */ |
|
|
|
|
ctWrite_i (CT_XR_O, 0x80, xr_80); |
|
|
|
|
video_set_lut(4, CONFIG_SYS_CONSOLE_FG_COL, CONFIG_SYS_CONSOLE_FG_COL, |
|
|
|
|
CONFIG_SYS_CONSOLE_FG_COL); |
|
|
|
|
/* position 4 is color 0 cursor 0 */ |
|
|
|
|
xr_80 &= 0xfe; /* normal palette select */ |
|
|
|
|
ctWrite_i (CT_XR_O, 0x80, xr_80); |
|
|
|
|
/* cursor enable */ |
|
|
|
|
ctWrite_i (CT_XR_O, 0xa0, 0x91); |
|
|
|
|
xr_80 |= 0x10; /* enable hwcursor */ |
|
|
|
|
ctWrite_i (CT_XR_O, 0x80, xr_80); |
|
|
|
|
video_set_hw_cursor (0, 0); |
|
|
|
|
} |
|
|
|
|
#endif /* CONFIG_VIDEO_HW_CURSOR */ |
|
|
|
|
|
|
|
|
|
/***************************************************************
|
|
|
|
|
* Wait for BitBlt ready |
|
|
|
|
*/ |
|
|
|
|