Lines Matching +full:sync +full:- +full:on +full:- +full:green
56 .green = { 5, 6, 0 },
59 .height = -1,
60 .width = -1,
303 struct kyrofb_info *par = info->par; in kyro_dev_video_mode_set()
309 /* Bring us out of VGA and into Hi-Res mode, if not already. */ in kyro_dev_video_mode_set()
313 info->var.bits_per_pixel, in kyro_dev_video_mode_set()
314 info->var.xres, info->var.yres, in kyro_dev_video_mode_set()
315 par->HSP, par->VSP, &par->PIXCLK) < 0) in kyro_dev_video_mode_set()
316 return -EINVAL; in kyro_dev_video_mode_set()
322 /* Turn on display in new mode */ in kyro_dev_video_mode_set()
326 deviceInfo.ulNextFreeVidMem = info->var.xres * info->var.yres * in kyro_dev_video_mode_set()
327 info->var.bits_per_pixel; in kyro_dev_video_mode_set()
344 return -EINVAL; in kyro_dev_overlay_create()
349 * sure the start offset is on an appropriate boundary. in kyro_dev_overlay_create()
358 return -EINVAL; in kyro_dev_overlay_create()
374 return -EINVAL; in kyro_dev_overlay_viewport_set()
379 return -EINVAL; in kyro_dev_overlay_viewport_set()
385 x, y, x + ulWidth - 1, y + ulHeight - 1); in kyro_dev_overlay_viewport_set()
401 struct kyrofb_info *par = info->par; in kyrofb_check_var()
403 if (!var->pixclock) in kyrofb_check_var()
404 return -EINVAL; in kyrofb_check_var()
406 if (var->bits_per_pixel != 16 && var->bits_per_pixel != 32) { in kyrofb_check_var()
407 printk(KERN_WARNING "kyrofb: depth not supported: %u\n", var->bits_per_pixel); in kyrofb_check_var()
408 return -EINVAL; in kyrofb_check_var()
411 switch (var->bits_per_pixel) { in kyrofb_check_var()
413 var->red.offset = 11; in kyrofb_check_var()
414 var->red.length = 5; in kyrofb_check_var()
415 var->green.offset = 5; in kyrofb_check_var()
416 var->green.length = 6; in kyrofb_check_var()
417 var->blue.length = 5; in kyrofb_check_var()
420 var->transp.offset = 24; in kyrofb_check_var()
421 var->red.offset = 16; in kyrofb_check_var()
422 var->green.offset = 8; in kyrofb_check_var()
423 var->blue.offset = 0; in kyrofb_check_var()
425 var->red.length = 8; in kyrofb_check_var()
426 var->green.length = 8; in kyrofb_check_var()
427 var->blue.length = 8; in kyrofb_check_var()
428 var->transp.length = 8; in kyrofb_check_var()
433 var->height = var->width = -1; in kyrofb_check_var()
437 /* par->PIXCLK is in 100Hz units. Convert to picoseconds - in kyrofb_check_var()
445 * and kyro_var. -- PFM. in kyrofb_check_var()
447 // var->pixclock = 1000000000 / (par->PIXCLK / 10); in kyrofb_check_var()
450 * - nobody else does though, the all use pixels and lines in kyrofb_check_var()
457 * from our modedb. -- PFM. in kyrofb_check_var()
459 if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_TEST) in kyrofb_check_var()
462 var->left_margin = par->HBP; in kyrofb_check_var()
463 var->hsync_len = par->HST; in kyrofb_check_var()
464 var->right_margin = par->HFP; in kyrofb_check_var()
466 var->upper_margin = par->VBP; in kyrofb_check_var()
467 var->vsync_len = par->VST; in kyrofb_check_var()
468 var->lower_margin = par->VFP; in kyrofb_check_var()
470 if (par->HSP == 1) in kyrofb_check_var()
471 var->sync |= FB_SYNC_HOR_HIGH_ACT; in kyrofb_check_var()
472 if (par->VSP == 1) in kyrofb_check_var()
473 var->sync |= FB_SYNC_VERT_HIGH_ACT; in kyrofb_check_var()
480 struct kyrofb_info *par = info->par; in kyrofb_set_par()
485 par->XRES = info->var.xres; in kyrofb_set_par()
486 par->YRES = info->var.yres; in kyrofb_set_par()
489 par->PIXDEPTH = info->var.bits_per_pixel; in kyrofb_set_par()
493 lineclock = (info->var.pixclock * (info->var.xres + in kyrofb_set_par()
494 info->var.right_margin + in kyrofb_set_par()
495 info->var.hsync_len + in kyrofb_set_par()
496 info->var.left_margin)) / 1000; in kyrofb_set_par()
499 return -EINVAL; in kyrofb_set_par()
502 frameclock = lineclock * (info->var.yres + in kyrofb_set_par()
503 info->var.lower_margin + in kyrofb_set_par()
504 info->var.vsync_len + in kyrofb_set_par()
505 info->var.upper_margin); in kyrofb_set_par()
508 par->VFREQ = (1000000000 + (frameclock / 2)) / frameclock; in kyrofb_set_par()
509 par->HCLK = (1000000000 + (lineclock / 2)) / lineclock; in kyrofb_set_par()
510 par->PIXCLK = ((1000000000 + (info->var.pixclock / 2)) in kyrofb_set_par()
511 / info->var.pixclock) * 10; in kyrofb_set_par()
514 par->HFP = info->var.right_margin; in kyrofb_set_par()
515 par->HST = info->var.hsync_len; in kyrofb_set_par()
516 par->HBP = info->var.left_margin; in kyrofb_set_par()
517 par->HTot = par->XRES + par->HBP + par->HST + par->HFP; in kyrofb_set_par()
520 par->VFP = info->var.lower_margin; in kyrofb_set_par()
521 par->VST = info->var.vsync_len; in kyrofb_set_par()
522 par->VBP = info->var.upper_margin; in kyrofb_set_par()
523 par->VTot = par->YRES + par->VBP + par->VST + par->VFP; in kyrofb_set_par()
525 par->HSP = (info->var.sync & FB_SYNC_HOR_HIGH_ACT) ? 1 : 0; in kyrofb_set_par()
526 par->VSP = (info->var.sync & FB_SYNC_VERT_HIGH_ACT) ? 1 : 0; in kyrofb_set_par()
531 info->fix.line_length = get_line_length(par->XRES, par->PIXDEPTH); in kyrofb_set_par()
532 info->fix.visual = FB_VISUAL_TRUECOLOR; in kyrofb_set_par()
537 static int kyrofb_setcolreg(u_int regno, u_int red, u_int green, in kyrofb_setcolreg() argument
540 struct kyrofb_info *par = info->par; in kyrofb_setcolreg()
546 switch (info->var.bits_per_pixel) { in kyrofb_setcolreg()
548 par->palette[regno] = in kyrofb_setcolreg()
550 ((green & 0xfc00) >> 5) | in kyrofb_setcolreg()
554 red >>= 8; green >>= 8; blue >>= 8; transp >>= 8; in kyrofb_setcolreg()
555 par->palette[regno] = in kyrofb_setcolreg()
556 (transp << 24) | (red << 16) | (green << 8) | blue; in kyrofb_setcolreg()
600 return -EFAULT; in kyrofb_ioctl()
606 return -EINVAL; in kyrofb_ioctl()
612 return -EFAULT; in kyrofb_ioctl()
620 return -EINVAL; in kyrofb_ioctl()
628 return -EINVAL; in kyrofb_ioctl()
632 return -EFAULT; in kyrofb_ioctl()
636 return -EFAULT; in kyrofb_ioctl()
640 return -EFAULT; in kyrofb_ioctl()
689 info = framebuffer_alloc(sizeof(struct kyrofb_info), &pdev->dev); in kyrofb_probe()
691 return -ENOMEM; in kyrofb_probe()
693 currentpar = info->par; in kyrofb_probe()
700 currentpar->regbase = deviceInfo.pSTGReg = in kyrofb_probe()
702 if (!currentpar->regbase) in kyrofb_probe()
705 info->screen_base = pci_ioremap_wc_bar(pdev, 0); in kyrofb_probe()
706 if (!info->screen_base) in kyrofb_probe()
710 currentpar->wc_cookie = arch_phys_wc_add(kyro_fix.smem_start, in kyrofb_probe()
716 info->fbops = &kyrofb_ops; in kyrofb_probe()
717 info->fix = kyro_fix; in kyrofb_probe()
718 info->pseudo_palette = currentpar->palette; in kyrofb_probe()
719 info->flags = FBINFO_DEFAULT; in kyrofb_probe()
727 if (!fb_find_mode(&info->var, info, mode_option, kyro_modedb, in kyrofb_probe()
729 info->var = kyro_var; in kyrofb_probe()
731 fb_alloc_cmap(&info->cmap, 256, 0); in kyrofb_probe()
734 kyrofb_check_var(&info->var, info); in kyrofb_probe()
736 size = get_line_length(info->var.xres_virtual, in kyrofb_probe()
737 info->var.bits_per_pixel); in kyrofb_probe()
738 size *= info->var.yres_virtual; in kyrofb_probe()
740 fb_memset(info->screen_base, 0, size); in kyrofb_probe()
746 info->fix.id, in kyrofb_probe()
747 info->var.xres, info->var.yres, info->var.bits_per_pixel, in kyrofb_probe()
748 size >> 10, (unsigned long)info->fix.smem_len >> 10); in kyrofb_probe()
755 iounmap(info->screen_base); in kyrofb_probe()
757 iounmap(currentpar->regbase); in kyrofb_probe()
761 return -EINVAL; in kyrofb_probe()
767 struct kyrofb_info *par = info->par; in kyrofb_remove()
773 /* Sync up the PLL */ in kyrofb_remove()
779 iounmap(info->screen_base); in kyrofb_remove()
780 iounmap(par->regbase); in kyrofb_remove()
782 arch_phys_wc_del(par->wc_cookie); in kyrofb_remove()
794 return -ENODEV; in kyrofb_init()
811 MODULE_AUTHOR("STMicroelectronics; Paul Mundt <lethal@linux-sh.org>");