Lines Matching +full:fifo +full:- +full:width
1 // SPDX-License-Identifier: GPL-2.0-only
5 * Fujitsu Carmine/Coral-P(A)/Lime framebuffer driver acceleration support
25 struct mb862xxfb_par *par = info->par; in mb862xxfb_write_fifo()
33 free--; in mb862xxfb_write_fifo()
50 if (area->sx >= area->dx && area->sy >= area->dy) in mb86290fb_copyarea()
52 else if (area->sx >= area->dx && area->sy <= area->dy) in mb86290fb_copyarea()
54 else if (area->sx <= area->dx && area->sy >= area->dy) in mb86290fb_copyarea()
59 cmd[3] = (area->sy << 16) | area->sx; in mb86290fb_copyarea()
60 cmd[4] = (area->dy << 16) | area->dx; in mb86290fb_copyarea()
61 cmd[5] = (area->height << 16) | area->width; in mb86290fb_copyarea()
66 * Fill in the cmd array /GDC FIFO commands/ to draw a 1bit image.
70 u16 width, u16 height, u32 fgcolor, in mb86290fb_imageblit1() argument
90 line = image->data; in mb86290fb_imageblit1()
91 bytes = (image->width + 7) >> 3; in mb86290fb_imageblit1()
97 cmd[8] = (height << 16) | width; in mb86290fb_imageblit1()
115 * Fill in the cmd array /GDC FIFO commands/ to draw a 8bit image.
119 u16 width, u16 height, u32 fgcolor, in mb86290fb_imageblit8() argument
130 cmd[2] = (height << 16) | width; in mb86290fb_imageblit8()
133 line = image->data; in mb86290fb_imageblit8()
134 bytes = image->width; in mb86290fb_imageblit8()
140 (((u32 *) (info->pseudo_palette))[*ptr]) & 0xffff; in mb86290fb_imageblit8()
143 ((((u32 *) (info-> in mb86290fb_imageblit8()
154 * Fill in the cmd array /GDC FIFO commands/ to draw a 16bit image.
158 u16 width, u16 height, u32 fgcolor, in mb86290fb_imageblit16() argument
167 line = image->data; in mb86290fb_imageblit16()
168 bytes = image->width << 1; in mb86290fb_imageblit16()
173 cmd[2] = (height << 16) | width; in mb86290fb_imageblit16()
192 u16 width = image->width, height = image->height; in mb86290fb_imageblit() local
193 u16 dx = image->dx, dy = image->dy; in mb86290fb_imageblit()
196 x2 = image->dx + image->width; in mb86290fb_imageblit()
197 y2 = image->dy + image->height; in mb86290fb_imageblit()
198 vxres = info->var.xres_virtual; in mb86290fb_imageblit()
199 vyres = info->var.yres_virtual; in mb86290fb_imageblit()
202 width = x2 - dx; in mb86290fb_imageblit()
203 height = y2 - dy; in mb86290fb_imageblit()
205 switch (image->depth) { in mb86290fb_imageblit()
207 step = (width + 31) >> 5; in mb86290fb_imageblit()
210 if (info->fix.visual == FB_VISUAL_TRUECOLOR || in mb86290fb_imageblit()
211 info->fix.visual == FB_VISUAL_DIRECTCOLOR) { in mb86290fb_imageblit()
213 ((u32 *) (info->pseudo_palette))[image->fg_color]; in mb86290fb_imageblit()
215 ((u32 *) (info->pseudo_palette))[image->bg_color]; in mb86290fb_imageblit()
217 fgcolor = image->fg_color; in mb86290fb_imageblit()
218 bgcolor = image->bg_color; in mb86290fb_imageblit()
224 step = (width + 1) >> 1; in mb86290fb_imageblit()
230 step = (width + 1) >> 1; in mb86290fb_imageblit()
243 cmdfn(cmd, step, dx, dy, width, height, fgcolor, bgcolor, image, info); in mb86290fb_imageblit()
252 u32 x2, y2, vxres, vyres, height, width, fg; in mb86290fb_fillrect() local
255 vxres = info->var.xres_virtual; in mb86290fb_fillrect()
256 vyres = info->var.yres_virtual; in mb86290fb_fillrect()
258 if (!rect->width || !rect->height || rect->dx > vxres in mb86290fb_fillrect()
259 || rect->dy > vyres) in mb86290fb_fillrect()
264 x2 = rect->dx + rect->width; in mb86290fb_fillrect()
265 y2 = rect->dy + rect->height; in mb86290fb_fillrect()
268 width = x2 - rect->dx; in mb86290fb_fillrect()
269 height = y2 - rect->dy; in mb86290fb_fillrect()
270 if (info->fix.visual == FB_VISUAL_TRUECOLOR || in mb86290fb_fillrect()
271 info->fix.visual == FB_VISUAL_DIRECTCOLOR) in mb86290fb_fillrect()
272 fg = ((u32 *) (info->pseudo_palette))[rect->color]; in mb86290fb_fillrect()
274 fg = rect->color; in mb86290fb_fillrect()
276 switch (rect->rop) { in mb86290fb_fillrect()
296 cmd[5] = (rect->dy << 16) | (rect->dx); in mb86290fb_fillrect()
297 cmd[6] = (height << 16) | width; in mb86290fb_fillrect()
304 struct mb862xxfb_par *par = info->par; in mb862xxfb_init_accel()
306 if (info->var.bits_per_pixel == 32) { in mb862xxfb_init_accel()
307 fbops->fb_fillrect = cfb_fillrect; in mb862xxfb_init_accel()
308 fbops->fb_copyarea = cfb_copyarea; in mb862xxfb_init_accel()
309 fbops->fb_imageblit = cfb_imageblit; in mb862xxfb_init_accel()
312 fbops->fb_fillrect = mb86290fb_fillrect; in mb862xxfb_init_accel()
313 fbops->fb_copyarea = mb86290fb_copyarea; in mb862xxfb_init_accel()
314 fbops->fb_imageblit = mb86290fb_imageblit; in mb862xxfb_init_accel()
320 info->flags |= in mb862xxfb_init_accel()
323 info->fix.accel = 0xff; /*FIXME: add right define */ in mb862xxfb_init_accel()