Lines Matching +full:device +full:- +full:width
2 * linux/drivers/video/hitfb.c -- Hitachi LCD frame buffer device
30 #define WIDTH 640 macro
34 .height = -1,
35 .width = -1,
76 u16 width, u16 height) in hitfb_accel_set_dest() argument
78 u32 saddr = WIDTH * dy + dx; in hitfb_accel_set_dest()
82 hitfb_writew(width-1, HD64461_BBTDWR); in hitfb_accel_set_dest()
83 hitfb_writew(height-1, HD64461_BBTDHR); in hitfb_accel_set_dest()
91 u16 dy, u16 width, u16 height, u16 rop, in hitfb_accel_bitblt() argument
97 height--; in hitfb_accel_bitblt()
98 width--; in hitfb_accel_bitblt()
101 saddr = WIDTH * (sy + height) + sx + width; in hitfb_accel_bitblt()
102 daddr = WIDTH * (dy + height) + dx + width; in hitfb_accel_bitblt()
105 maddr = ((width >> 3) + 1) * (height + 1) - 1; in hitfb_accel_bitblt()
108 (((width >> 4) + 1) * (height + 1) - 1) * 2; in hitfb_accel_bitblt()
114 saddr = WIDTH * sy + sx; in hitfb_accel_bitblt()
115 daddr = WIDTH * dy + dx; in hitfb_accel_bitblt()
126 hitfb_writew(width, HD64461_BBTDWR); in hitfb_accel_bitblt()
142 if (rect->rop != ROP_COPY) in hitfb_fillrect()
149 if (p->var.bits_per_pixel == 16) { in hitfb_fillrect()
150 hitfb_writew(((u32 *) (p->pseudo_palette))[rect->color], in hitfb_fillrect()
152 hitfb_accel_set_dest(1, rect->dx, rect->dy, rect->width, in hitfb_fillrect()
153 rect->height); in hitfb_fillrect()
156 hitfb_writew(rect->color, HD64461_GRSCR); in hitfb_fillrect()
157 hitfb_accel_set_dest(0, rect->dx, rect->dy, rect->width, in hitfb_fillrect()
158 rect->height); in hitfb_fillrect()
167 hitfb_accel_bitblt(p->var.bits_per_pixel == 16, area->sx, area->sy, in hitfb_copyarea()
168 area->dx, area->dy, area->width, area->height, in hitfb_copyarea()
175 int xoffset = var->xoffset; in hitfb_pan_display()
176 int yoffset = var->yoffset; in hitfb_pan_display()
179 return -EINVAL; in hitfb_pan_display()
181 hitfb_writew((yoffset*info->fix.line_length)>>10, HD64461_LCDCBAR); in hitfb_pan_display()
228 switch (info->var.bits_per_pixel) { in hitfb_setcolreg()
238 ((u32 *) (info->pseudo_palette))[regno] = in hitfb_setcolreg()
257 var->xres = info->var.xres; in hitfb_check_var()
258 var->xres_virtual = info->var.xres; in hitfb_check_var()
259 var->yres = info->var.yres; in hitfb_check_var()
261 if ((var->bits_per_pixel != 8) && (var->bits_per_pixel != 16)) in hitfb_check_var()
262 var->bits_per_pixel = info->var.bits_per_pixel; in hitfb_check_var()
264 if (var->yres_virtual < var->yres) in hitfb_check_var()
265 var->yres_virtual = var->yres; in hitfb_check_var()
267 maxy = info->fix.smem_len / var->xres; in hitfb_check_var()
269 if (var->bits_per_pixel == 16) in hitfb_check_var()
272 if (var->yres_virtual > maxy) in hitfb_check_var()
273 var->yres_virtual = maxy; in hitfb_check_var()
275 var->xoffset = 0; in hitfb_check_var()
276 var->yoffset = 0; in hitfb_check_var()
278 switch (var->bits_per_pixel) { in hitfb_check_var()
280 var->red.offset = 0; in hitfb_check_var()
281 var->red.length = 8; in hitfb_check_var()
282 var->green.offset = 0; in hitfb_check_var()
283 var->green.length = 8; in hitfb_check_var()
284 var->blue.offset = 0; in hitfb_check_var()
285 var->blue.length = 8; in hitfb_check_var()
286 var->transp.offset = 0; in hitfb_check_var()
287 var->transp.length = 0; in hitfb_check_var()
290 var->red.offset = 11; in hitfb_check_var()
291 var->red.length = 5; in hitfb_check_var()
292 var->green.offset = 5; in hitfb_check_var()
293 var->green.length = 6; in hitfb_check_var()
294 var->blue.offset = 0; in hitfb_check_var()
295 var->blue.length = 5; in hitfb_check_var()
296 var->transp.offset = 0; in hitfb_check_var()
297 var->transp.length = 0; in hitfb_check_var()
308 switch (info->var.bits_per_pixel) { in hitfb_set_par()
310 info->fix.line_length = info->var.xres; in hitfb_set_par()
311 info->fix.visual = FB_VISUAL_PSEUDOCOLOR; in hitfb_set_par()
312 info->fix.ypanstep = 16; in hitfb_set_par()
315 info->fix.line_length = info->var.xres*2; in hitfb_set_par()
316 info->fix.visual = FB_VISUAL_TRUECOLOR; in hitfb_set_par()
317 info->fix.ypanstep = 8; in hitfb_set_par()
321 hitfb_writew(info->fix.line_length, HD64461_LCDCLOR); in hitfb_set_par()
324 ldr3 |= (info->var.bits_per_pixel == 8) ? 4 : 8; in hitfb_set_par()
351 return -ENODEV; in hitfb_probe()
402 info = framebuffer_alloc(sizeof(u32) * 16, &dev->dev); in hitfb_probe()
404 return -ENOMEM; in hitfb_probe()
406 info->fbops = &hitfb_ops; in hitfb_probe()
407 info->var = hitfb_var; in hitfb_probe()
408 info->fix = hitfb_fix; in hitfb_probe()
409 info->pseudo_palette = info->par; in hitfb_probe()
410 info->flags = FBINFO_HWACCEL_YPAN | in hitfb_probe()
413 info->screen_base = (char __iomem *)(uintptr_t)hitfb_fix.smem_start; in hitfb_probe()
415 ret = fb_alloc_cmap(&info->cmap, 256, 0); in hitfb_probe()
425 fb_info(info, "%s frame buffer device\n", info->fix.id); in hitfb_probe()
430 fb_dealloc_cmap(&info->cmap); in hitfb_probe()
441 fb_dealloc_cmap(&info->cmap); in hitfb_remove()
445 static int hitfb_suspend(struct device *dev) in hitfb_suspend()
457 static int hitfb_resume(struct device *dev) in hitfb_resume()
488 .id = -1,