Lines Matching +full:data +full:- +full:width
2 * linux/drivers/video/console/bitblit.c -- BitBlitting Operation
28 int i, offset = (vc->vc_font.height < 10) ? 1 : 2; in update_attr()
29 int width = DIV_ROUND_UP(vc->vc_font.width, 8); in update_attr() local
30 unsigned int cellsize = vc->vc_font.height * width; in update_attr()
33 offset = cellsize - (offset * width); in update_attr()
47 int sx, int dy, int dx, int height, int width) in bit_bmove() argument
51 area.sx = sx * vc->vc_font.width; in bit_bmove()
52 area.sy = sy * vc->vc_font.height; in bit_bmove()
53 area.dx = dx * vc->vc_font.width; in bit_bmove()
54 area.dy = dy * vc->vc_font.height; in bit_bmove()
55 area.height = height * vc->vc_font.height; in bit_bmove()
56 area.width = width * vc->vc_font.width; in bit_bmove()
58 info->fbops->fb_copyarea(info, &area); in bit_bmove()
62 int sx, int height, int width) in bit_clear() argument
64 int bgshift = (vc->vc_hi_font_mask) ? 13 : 12; in bit_clear()
68 region.dx = sx * vc->vc_font.width; in bit_clear()
69 region.dy = sy * vc->vc_font.height; in bit_clear()
70 region.width = width * vc->vc_font.width; in bit_clear()
71 region.height = height * vc->vc_font.height; in bit_clear()
74 info->fbops->fb_fillrect(info, ®ion); in bit_clear()
82 u16 charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; in bit_putcs_aligned()
83 u32 idx = vc->vc_font.width >> 3; in bit_putcs_aligned()
86 while (cnt--) { in bit_putcs_aligned()
87 src = vc->vc_font.data + (scr_readw(s++)& in bit_putcs_aligned()
97 image->height); in bit_putcs_aligned()
100 image->height); in bit_putcs_aligned()
105 info->fbops->fb_imageblit(info, image); in bit_putcs_aligned()
115 u16 charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; in bit_putcs_unaligned()
116 u32 shift_low = 0, mod = vc->vc_font.width % 8; in bit_putcs_unaligned()
118 u32 idx = vc->vc_font.width >> 3; in bit_putcs_unaligned()
121 while (cnt--) { in bit_putcs_unaligned()
122 src = vc->vc_font.data + (scr_readw(s++)& in bit_putcs_unaligned()
131 image->height, shift_high, in bit_putcs_unaligned()
134 dst += (shift_low >= 8) ? s_pitch : s_pitch - 1; in bit_putcs_unaligned()
136 shift_high = 8 - shift_low; in bit_putcs_unaligned()
139 info->fbops->fb_imageblit(info, image); in bit_putcs_unaligned()
148 u32 width = DIV_ROUND_UP(vc->vc_font.width, 8); in bit_putcs() local
149 u32 cellsize = width * vc->vc_font.height; in bit_putcs()
150 u32 maxcnt = info->pixmap.size/cellsize; in bit_putcs()
151 u32 scan_align = info->pixmap.scan_align - 1; in bit_putcs()
152 u32 buf_align = info->pixmap.buf_align - 1; in bit_putcs()
153 u32 mod = vc->vc_font.width % 8, cnt, pitch, size; in bit_putcs()
159 image.dx = xx * vc->vc_font.width; in bit_putcs()
160 image.dy = yy * vc->vc_font.height; in bit_putcs()
161 image.height = vc->vc_font.height; in bit_putcs()
176 image.width = vc->vc_font.width * cnt; in bit_putcs()
177 pitch = DIV_ROUND_UP(image.width, 8) + scan_align; in bit_putcs()
181 dst = fb_get_buffer_offset(info, &info->pixmap, size); in bit_putcs()
182 image.data = dst; in bit_putcs()
186 width, cellsize, &image, buf, dst); in bit_putcs()
189 pitch, width, cellsize, &image, in bit_putcs()
192 image.dx += cnt * vc->vc_font.width; in bit_putcs()
193 count -= cnt; in bit_putcs()
208 unsigned int cw = vc->vc_font.width; in bit_clear_margins()
209 unsigned int ch = vc->vc_font.height; in bit_clear_margins()
210 unsigned int rw = info->var.xres - (vc->vc_cols*cw); in bit_clear_margins()
211 unsigned int bh = info->var.yres - (vc->vc_rows*ch); in bit_clear_margins()
212 unsigned int rs = info->var.xres - rw; in bit_clear_margins()
213 unsigned int bs = info->var.yres - bh; in bit_clear_margins()
220 region.dx = info->var.xoffset + rs; in bit_clear_margins()
222 region.width = rw; in bit_clear_margins()
223 region.height = info->var.yres_virtual; in bit_clear_margins()
224 info->fbops->fb_fillrect(info, ®ion); in bit_clear_margins()
228 region.dx = info->var.xoffset; in bit_clear_margins()
229 region.dy = info->var.yoffset + bs; in bit_clear_margins()
230 region.width = rs; in bit_clear_margins()
232 info->fbops->fb_fillrect(info, ®ion); in bit_clear_margins()
240 struct fbcon_ops *ops = info->fbcon_par; in bit_cursor()
241 unsigned short charmask = vc->vc_hi_font_mask ? 0x1ff : 0xff; in bit_cursor()
242 int w = DIV_ROUND_UP(vc->vc_font.width, 8), c; in bit_cursor()
243 int y = real_y(ops->p, vc->state.y); in bit_cursor()
244 int attribute, use_sw = vc->vc_cursor_type & CUR_SW; in bit_cursor()
250 if (!vc->vc_font.data) in bit_cursor()
253 c = scr_readw((u16 *) vc->vc_pos); in bit_cursor()
255 src = vc->vc_font.data + ((c & charmask) * (w * vc->vc_font.height)); in bit_cursor()
257 if (ops->cursor_state.image.data != src || in bit_cursor()
258 ops->cursor_reset) { in bit_cursor()
259 ops->cursor_state.image.data = src; in bit_cursor()
266 dst = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC); in bit_cursor()
269 kfree(ops->cursor_data); in bit_cursor()
270 ops->cursor_data = dst; in bit_cursor()
275 if (ops->cursor_state.image.fg_color != fg || in bit_cursor()
276 ops->cursor_state.image.bg_color != bg || in bit_cursor()
277 ops->cursor_reset) { in bit_cursor()
278 ops->cursor_state.image.fg_color = fg; in bit_cursor()
279 ops->cursor_state.image.bg_color = bg; in bit_cursor()
283 if ((ops->cursor_state.image.dx != (vc->vc_font.width * vc->state.x)) || in bit_cursor()
284 (ops->cursor_state.image.dy != (vc->vc_font.height * y)) || in bit_cursor()
285 ops->cursor_reset) { in bit_cursor()
286 ops->cursor_state.image.dx = vc->vc_font.width * vc->state.x; in bit_cursor()
287 ops->cursor_state.image.dy = vc->vc_font.height * y; in bit_cursor()
291 if (ops->cursor_state.image.height != vc->vc_font.height || in bit_cursor()
292 ops->cursor_state.image.width != vc->vc_font.width || in bit_cursor()
293 ops->cursor_reset) { in bit_cursor()
294 ops->cursor_state.image.height = vc->vc_font.height; in bit_cursor()
295 ops->cursor_state.image.width = vc->vc_font.width; in bit_cursor()
299 if (ops->cursor_state.hot.x || ops->cursor_state.hot.y || in bit_cursor()
300 ops->cursor_reset) { in bit_cursor()
301 ops->cursor_state.hot.x = cursor.hot.y = 0; in bit_cursor()
306 vc->vc_cursor_type != ops->p->cursor_shape || in bit_cursor()
307 ops->cursor_state.mask == NULL || in bit_cursor()
308 ops->cursor_reset) { in bit_cursor()
309 char *mask = kmalloc_array(w, vc->vc_font.height, GFP_ATOMIC); in bit_cursor()
316 kfree(ops->cursor_state.mask); in bit_cursor()
317 ops->cursor_state.mask = mask; in bit_cursor()
319 ops->p->cursor_shape = vc->vc_cursor_type; in bit_cursor()
322 switch (CUR_SIZE(ops->p->cursor_shape)) { in bit_cursor()
327 cur_height = (vc->vc_font.height < 10) ? 1 : 2; in bit_cursor()
330 cur_height = vc->vc_font.height/3; in bit_cursor()
333 cur_height = vc->vc_font.height >> 1; in bit_cursor()
336 cur_height = (vc->vc_font.height << 1)/3; in bit_cursor()
340 cur_height = vc->vc_font.height; in bit_cursor()
343 size = (vc->vc_font.height - cur_height) * w; in bit_cursor()
344 while (size--) in bit_cursor()
347 while (size--) in bit_cursor()
351 ops->cursor_state.enable = enable && !use_sw; in bit_cursor()
353 cursor.image.data = src; in bit_cursor()
354 cursor.image.fg_color = ops->cursor_state.image.fg_color; in bit_cursor()
355 cursor.image.bg_color = ops->cursor_state.image.bg_color; in bit_cursor()
356 cursor.image.dx = ops->cursor_state.image.dx; in bit_cursor()
357 cursor.image.dy = ops->cursor_state.image.dy; in bit_cursor()
358 cursor.image.height = ops->cursor_state.image.height; in bit_cursor()
359 cursor.image.width = ops->cursor_state.image.width; in bit_cursor()
360 cursor.hot.x = ops->cursor_state.hot.x; in bit_cursor()
361 cursor.hot.y = ops->cursor_state.hot.y; in bit_cursor()
362 cursor.mask = ops->cursor_state.mask; in bit_cursor()
363 cursor.enable = ops->cursor_state.enable; in bit_cursor()
367 if (info->fbops->fb_cursor) in bit_cursor()
368 err = info->fbops->fb_cursor(info, &cursor); in bit_cursor()
373 ops->cursor_reset = 0; in bit_cursor()
378 struct fbcon_ops *ops = info->fbcon_par; in bit_update_start()
381 err = fb_pan_display(info, &ops->var); in bit_update_start()
382 ops->var.xoffset = info->var.xoffset; in bit_update_start()
383 ops->var.yoffset = info->var.yoffset; in bit_update_start()
384 ops->var.vmode = info->var.vmode; in bit_update_start()
390 ops->bmove = bit_bmove; in fbcon_set_bitops()
391 ops->clear = bit_clear; in fbcon_set_bitops()
392 ops->putcs = bit_putcs; in fbcon_set_bitops()
393 ops->clear_margins = bit_clear_margins; in fbcon_set_bitops()
394 ops->cursor = bit_cursor; in fbcon_set_bitops()
395 ops->update_start = bit_update_start; in fbcon_set_bitops()
396 ops->rotate_font = NULL; in fbcon_set_bitops()
398 if (ops->rotate) in fbcon_set_bitops()