Lines Matching +full:sync +full:- +full:on +full:- +full:green
55 .green = { 5, 6, 0 },
58 .height = -1,
59 .width = -1,
302 struct kyrofb_info *par = info->par; in kyro_dev_video_mode_set()
308 /* Bring us out of VGA and into Hi-Res mode, if not already. */ in kyro_dev_video_mode_set()
312 info->var.bits_per_pixel, in kyro_dev_video_mode_set()
313 info->var.xres, info->var.yres, in kyro_dev_video_mode_set()
314 par->HSP, par->VSP, &par->PIXCLK) < 0) in kyro_dev_video_mode_set()
315 return -EINVAL; in kyro_dev_video_mode_set()
321 /* Turn on display in new mode */ in kyro_dev_video_mode_set()
325 deviceInfo.ulNextFreeVidMem = info->var.xres * info->var.yres * in kyro_dev_video_mode_set()
326 info->var.bits_per_pixel; in kyro_dev_video_mode_set()
343 return -EINVAL; in kyro_dev_overlay_create()
348 * sure the start offset is on an appropriate boundary. in kyro_dev_overlay_create()
357 return -EINVAL; in kyro_dev_overlay_create()
373 return -EINVAL; in kyro_dev_overlay_viewport_set()
378 return -EINVAL; in kyro_dev_overlay_viewport_set()
384 x, y, x + ulWidth - 1, y + ulHeight - 1); in kyro_dev_overlay_viewport_set()
400 struct kyrofb_info *par = info->par; in kyrofb_check_var()
402 if (!var->pixclock) in kyrofb_check_var()
403 return -EINVAL; in kyrofb_check_var()
405 if (var->bits_per_pixel != 16 && var->bits_per_pixel != 32) { in kyrofb_check_var()
406 printk(KERN_WARNING "kyrofb: depth not supported: %u\n", var->bits_per_pixel); in kyrofb_check_var()
407 return -EINVAL; in kyrofb_check_var()
410 switch (var->bits_per_pixel) { in kyrofb_check_var()
412 var->red.offset = 11; in kyrofb_check_var()
413 var->red.length = 5; in kyrofb_check_var()
414 var->green.offset = 5; in kyrofb_check_var()
415 var->green.length = 6; in kyrofb_check_var()
416 var->blue.length = 5; in kyrofb_check_var()
419 var->transp.offset = 24; in kyrofb_check_var()
420 var->red.offset = 16; in kyrofb_check_var()
421 var->green.offset = 8; in kyrofb_check_var()
422 var->blue.offset = 0; in kyrofb_check_var()
424 var->red.length = 8; in kyrofb_check_var()
425 var->green.length = 8; in kyrofb_check_var()
426 var->blue.length = 8; in kyrofb_check_var()
427 var->transp.length = 8; in kyrofb_check_var()
432 var->height = var->width = -1; in kyrofb_check_var()
436 /* par->PIXCLK is in 100Hz units. Convert to picoseconds - in kyrofb_check_var()
444 * and kyro_var. -- PFM. in kyrofb_check_var()
446 // var->pixclock = 1000000000 / (par->PIXCLK / 10); in kyrofb_check_var()
449 * - nobody else does though, the all use pixels and lines in kyrofb_check_var()
456 * from our modedb. -- PFM. in kyrofb_check_var()
458 if ((var->activate & FB_ACTIVATE_MASK) == FB_ACTIVATE_TEST) in kyrofb_check_var()
461 var->left_margin = par->HBP; in kyrofb_check_var()
462 var->hsync_len = par->HST; in kyrofb_check_var()
463 var->right_margin = par->HFP; in kyrofb_check_var()
465 var->upper_margin = par->VBP; in kyrofb_check_var()
466 var->vsync_len = par->VST; in kyrofb_check_var()
467 var->lower_margin = par->VFP; in kyrofb_check_var()
469 if (par->HSP == 1) in kyrofb_check_var()
470 var->sync |= FB_SYNC_HOR_HIGH_ACT; in kyrofb_check_var()
471 if (par->VSP == 1) in kyrofb_check_var()
472 var->sync |= FB_SYNC_VERT_HIGH_ACT; in kyrofb_check_var()
479 struct kyrofb_info *par = info->par; in kyrofb_set_par()
484 par->XRES = info->var.xres; in kyrofb_set_par()
485 par->YRES = info->var.yres; in kyrofb_set_par()
488 par->PIXDEPTH = info->var.bits_per_pixel; in kyrofb_set_par()
492 lineclock = (info->var.pixclock * (info->var.xres + in kyrofb_set_par()
493 info->var.right_margin + in kyrofb_set_par()
494 info->var.hsync_len + in kyrofb_set_par()
495 info->var.left_margin)) / 1000; in kyrofb_set_par()
499 frameclock = lineclock * (info->var.yres + in kyrofb_set_par()
500 info->var.lower_margin + in kyrofb_set_par()
501 info->var.vsync_len + in kyrofb_set_par()
502 info->var.upper_margin); in kyrofb_set_par()
505 par->VFREQ = (1000000000 + (frameclock / 2)) / frameclock; in kyrofb_set_par()
506 par->HCLK = (1000000000 + (lineclock / 2)) / lineclock; in kyrofb_set_par()
507 par->PIXCLK = ((1000000000 + (info->var.pixclock / 2)) in kyrofb_set_par()
508 / info->var.pixclock) * 10; in kyrofb_set_par()
511 par->HFP = info->var.right_margin; in kyrofb_set_par()
512 par->HST = info->var.hsync_len; in kyrofb_set_par()
513 par->HBP = info->var.left_margin; in kyrofb_set_par()
514 par->HTot = par->XRES + par->HBP + par->HST + par->HFP; in kyrofb_set_par()
517 par->VFP = info->var.lower_margin; in kyrofb_set_par()
518 par->VST = info->var.vsync_len; in kyrofb_set_par()
519 par->VBP = info->var.upper_margin; in kyrofb_set_par()
520 par->VTot = par->YRES + par->VBP + par->VST + par->VFP; in kyrofb_set_par()
522 par->HSP = (info->var.sync & FB_SYNC_HOR_HIGH_ACT) ? 1 : 0; in kyrofb_set_par()
523 par->VSP = (info->var.sync & FB_SYNC_VERT_HIGH_ACT) ? 1 : 0; in kyrofb_set_par()
528 info->fix.line_length = get_line_length(par->XRES, par->PIXDEPTH); in kyrofb_set_par()
529 info->fix.visual = FB_VISUAL_TRUECOLOR; in kyrofb_set_par()
534 static int kyrofb_setcolreg(u_int regno, u_int red, u_int green, in kyrofb_setcolreg() argument
537 struct kyrofb_info *par = info->par; in kyrofb_setcolreg()
543 switch (info->var.bits_per_pixel) { in kyrofb_setcolreg()
545 par->palette[regno] = in kyrofb_setcolreg()
547 ((green & 0xfc00) >> 5) | in kyrofb_setcolreg()
551 red >>= 8; green >>= 8; blue >>= 8; transp >>= 8; in kyrofb_setcolreg()
552 par->palette[regno] = in kyrofb_setcolreg()
553 (transp << 24) | (red << 16) | (green << 8) | blue; in kyrofb_setcolreg()
597 return -EFAULT; in kyrofb_ioctl()
603 return -EINVAL; in kyrofb_ioctl()
609 return -EFAULT; in kyrofb_ioctl()
617 return -EINVAL; in kyrofb_ioctl()
625 return -EINVAL; in kyrofb_ioctl()
629 return -EFAULT; in kyrofb_ioctl()
633 return -EFAULT; in kyrofb_ioctl()
637 return -EFAULT; in kyrofb_ioctl()
682 info = framebuffer_alloc(sizeof(struct kyrofb_info), &pdev->dev); in kyrofb_probe()
684 return -ENOMEM; in kyrofb_probe()
686 currentpar = info->par; in kyrofb_probe()
693 currentpar->regbase = deviceInfo.pSTGReg = in kyrofb_probe()
695 if (!currentpar->regbase) in kyrofb_probe()
698 info->screen_base = pci_ioremap_wc_bar(pdev, 0); in kyrofb_probe()
699 if (!info->screen_base) in kyrofb_probe()
703 currentpar->wc_cookie = arch_phys_wc_add(kyro_fix.smem_start, in kyrofb_probe()
709 info->fbops = &kyrofb_ops; in kyrofb_probe()
710 info->fix = kyro_fix; in kyrofb_probe()
711 info->pseudo_palette = currentpar->palette; in kyrofb_probe()
712 info->flags = FBINFO_DEFAULT; in kyrofb_probe()
720 if (!fb_find_mode(&info->var, info, mode_option, kyro_modedb, in kyrofb_probe()
722 info->var = kyro_var; in kyrofb_probe()
724 fb_alloc_cmap(&info->cmap, 256, 0); in kyrofb_probe()
727 kyrofb_check_var(&info->var, info); in kyrofb_probe()
729 size = get_line_length(info->var.xres_virtual, in kyrofb_probe()
730 info->var.bits_per_pixel); in kyrofb_probe()
731 size *= info->var.yres_virtual; in kyrofb_probe()
733 fb_memset(info->screen_base, 0, size); in kyrofb_probe()
739 info->fix.id, in kyrofb_probe()
740 info->var.xres, info->var.yres, info->var.bits_per_pixel, in kyrofb_probe()
741 size >> 10, (unsigned long)info->fix.smem_len >> 10); in kyrofb_probe()
748 iounmap(info->screen_base); in kyrofb_probe()
750 iounmap(currentpar->regbase); in kyrofb_probe()
754 return -EINVAL; in kyrofb_probe()
760 struct kyrofb_info *par = info->par; in kyrofb_remove()
766 /* Sync up the PLL */ in kyrofb_remove()
772 iounmap(info->screen_base); in kyrofb_remove()
773 iounmap(par->regbase); in kyrofb_remove()
775 arch_phys_wc_del(par->wc_cookie); in kyrofb_remove()
787 return -ENODEV; in kyrofb_init()
804 MODULE_AUTHOR("STMicroelectronics; Paul Mundt <lethal@linux-sh.org>");