.. | .. |
---|
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; |
---|