45 #include <linux/module.h>
46 #include <linux/kernel.h>
47 #include <linux/errno.h>
48 #include <linux/string.h>
50 #include <linux/slab.h>
54 #include <linux/pci.h>
257 struct xxx_par *par = info->
par;
284 static int xxxfb_setcolreg(
unsigned regno,
unsigned red,
unsigned green,
295 if (info->
var.grayscale) {
297 red = green = blue = (red * 77 + green * 151 + blue * 28) >> 8;
362 #define CNVT_TOHW(val,width) ((((val)<<(width))+0x7FFF-(val))>>16)
378 write_{red|green|blue|transp}_to_clut();
402 v = (red << info->
var.red.offset) |
403 (green << info->
var.green.offset) |
404 (blue << info->
var.blue.offset) |
405 (transp << info->
var.transp.offset);
464 static int xxxfb_blank(
int blank_mode,
struct fb_info *info)
653 static struct fb_ops xxxfb_ops = {
655 .fb_open = xxxfb_open,
656 .fb_read = xxxfb_read,
657 .fb_write = xxxfb_write,
658 .fb_release = xxxfb_release,
659 .fb_check_var = xxxfb_check_var,
660 .fb_set_par = xxxfb_set_par,
661 .fb_setcolreg = xxxfb_setcolreg,
662 .fb_blank = xxxfb_blank,
663 .fb_pan_display = xxxfb_pan_display,
670 .fb_ioctl = xxxfb_ioctl,
671 .fb_mmap = xxxfb_mmap,
707 info->
fbops = &xxxfb_ops;
708 info->
fix = xxxfb_fix;
754 info->
pixmap.size = PIXMAP_SIZE;
770 info->
pixmap.scan_align = 4;
777 info->
pixmap.buf_align = 4;
785 info->
pixmap.access_align = 32;
793 mode_option =
"640x480@60";
797 if (!retval || retval == 4)
808 info->
var = xxxfb_var;
813 xxxfb_check_var(&info->
var, info);
832 pci_set_drvdata(dev, info);
842 struct fb_info *info = pci_get_drvdata(dev);
864 struct fb_info *info = pci_get_drvdata(dev);
865 struct xxxfb_par *par = info->
par;
879 struct fb_info *info = pci_get_drvdata(dev);
880 struct xxxfb_par *par = info->
par;
886 #define xxxfb_suspend NULL
887 #define xxxfb_resume NULL
891 { PCI_VENDOR_ID_XXX, PCI_DEVICE_ID_XXX,
900 .id_table = xxxfb_id_table,
901 .probe = xxxfb_probe,
922 return pci_register_driver(&xxxfb_driver);
925 static void __exit xxxfb_exit(
void)
943 struct fb_info *info = platform_get_drvdata(dev);
944 struct xxxfb_par *par = info->
par;
958 struct fb_info *info = platform_get_drvdata(dev);
959 struct xxxfb_par *par = info->
par;
965 #define xxxfb_suspend NULL
966 #define xxxfb_resume NULL
969 static struct platform_device_driver xxxfb_driver = {
970 .
probe = xxxfb_probe,
971 .remove = xxxfb_remove,
1003 char *option =
NULL;
1012 xxxfb_device = platform_device_register_simple(
"xxxfb", 0,
1015 if (IS_ERR(xxxfb_device)) {
1017 ret = PTR_ERR(xxxfb_device);
1024 static void __exit xxxfb_exit(
void)