| .. | .. |
|---|
| 240 | 240 | struct fbcon_ops *ops = info->fbcon_par; |
|---|
| 241 | 241 | unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; |
|---|
| 242 | 242 | int w = DIV_ROUND_UP(vc->vc_font.width, 8), c; |
|---|
| 243 | | - int y = real_y(ops->p, vc->vc_y); |
|---|
| 244 | | - int attribute, use_sw = (vc->vc_cursor_type & 0x10); |
|---|
| 243 | + int y = real_y(ops->p, vc->state.y); |
|---|
| 244 | + int attribute, use_sw = vc->vc_cursor_type & CUR_SW; |
|---|
| 245 | 245 | int err = 1; |
|---|
| 246 | 246 | char *src; |
|---|
| 247 | 247 | |
|---|
| 248 | 248 | cursor.set = 0; |
|---|
| 249 | + |
|---|
| 250 | + if (!vc->vc_font.data) |
|---|
| 251 | + return; |
|---|
| 249 | 252 | |
|---|
| 250 | 253 | c = scr_readw((u16 *) vc->vc_pos); |
|---|
| 251 | 254 | attribute = get_attribute(info, c); |
|---|
| .. | .. |
|---|
| 277 | 280 | cursor.set |= FB_CUR_SETCMAP; |
|---|
| 278 | 281 | } |
|---|
| 279 | 282 | |
|---|
| 280 | | - if ((ops->cursor_state.image.dx != (vc->vc_font.width * vc->vc_x)) || |
|---|
| 283 | + if ((ops->cursor_state.image.dx != (vc->vc_font.width * vc->state.x)) || |
|---|
| 281 | 284 | (ops->cursor_state.image.dy != (vc->vc_font.height * y)) || |
|---|
| 282 | 285 | ops->cursor_reset) { |
|---|
| 283 | | - ops->cursor_state.image.dx = vc->vc_font.width * vc->vc_x; |
|---|
| 286 | + ops->cursor_state.image.dx = vc->vc_font.width * vc->state.x; |
|---|
| 284 | 287 | ops->cursor_state.image.dy = vc->vc_font.height * y; |
|---|
| 285 | 288 | cursor.set |= FB_CUR_SETPOS; |
|---|
| 286 | 289 | } |
|---|
| .. | .. |
|---|
| 316 | 319 | ops->p->cursor_shape = vc->vc_cursor_type; |
|---|
| 317 | 320 | cursor.set |= FB_CUR_SETSHAPE; |
|---|
| 318 | 321 | |
|---|
| 319 | | - switch (ops->p->cursor_shape & CUR_HWMASK) { |
|---|
| 322 | + switch (CUR_SIZE(ops->p->cursor_shape)) { |
|---|
| 320 | 323 | case CUR_NONE: |
|---|
| 321 | 324 | cur_height = 0; |
|---|
| 322 | 325 | break; |
|---|