#include <linux/aperture.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/ioctl.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <asm/io.h>
#include <linux/uaccess.h>
#include <video/kyro.h>
#include "STG4000Reg.h"
#include "STG4000Interface.h"
#define PCI_VENDOR_ID_ST …
#define PCI_DEVICE_ID_STG4000 …
#define KHZ2PICOS(a) …
static struct fb_fix_screeninfo kyro_fix = …;
static const struct fb_var_screeninfo kyro_var = …;
device_info_t;
static device_info_t deviceInfo;
static char *mode_option = …;
static int nopan = …;
static int nowrap = …;
static int nomtrr = …;
static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
static void kyrofb_remove(struct pci_dev *pdev);
static struct fb_videomode kyro_modedb[] = …;
#define NUM_TOTAL_MODES …
enum { … };
static int kyro_dev_video_mode_set(struct fb_info *info)
{ … }
static int kyro_dev_overlay_create(u32 ulWidth,
u32 ulHeight, int bLinear)
{ … }
static int kyro_dev_overlay_viewport_set(u32 x, u32 y, u32 ulWidth, u32 ulHeight)
{ … }
static inline unsigned long get_line_length(int x, int bpp)
{ … }
static int kyrofb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{ … }
static int kyrofb_set_par(struct fb_info *info)
{ … }
static int kyrofb_setcolreg(u_int regno, u_int red, u_int green,
u_int blue, u_int transp, struct fb_info *info)
{ … }
#ifndef MODULE
static int __init kyrofb_setup(char *options)
{ … }
#endif
static int kyrofb_ioctl(struct fb_info *info,
unsigned int cmd, unsigned long arg)
{ … }
static const struct pci_device_id kyrofb_pci_tbl[] = …;
MODULE_DEVICE_TABLE(pci, kyrofb_pci_tbl);
static struct pci_driver kyrofb_pci_driver = …;
static const struct fb_ops kyrofb_ops = …;
static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{ … }
static void kyrofb_remove(struct pci_dev *pdev)
{ … }
static int __init kyrofb_init(void)
{ … }
static void __exit kyrofb_exit(void)
{ … }
module_init(…) …;
#ifdef MODULE
module_exit(kyrofb_exit);
#endif
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;