#include <linux/aperture.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/mm_types.h>
#include <linux/vmalloc.h>
#include <linux/pagemap.h>
#include <linux/console.h>
#include "sm750.h"
#include "sm750_accel.h"
#include "sm750_cursor.h"
static int g_hwcursor = …;
static int g_noaccel;
static int g_nomtrr;
static const char *g_fbmode[] = …;
static const char *g_def_fbmode = …;
static char *g_settings;
static int g_dualview;
static char *g_option;
static const struct fb_videomode lynx750_ext[] = …;
static int lynxfb_ops_cursor(struct fb_info *info, struct fb_cursor *fbcursor)
{ … }
static void lynxfb_ops_fillrect(struct fb_info *info,
const struct fb_fillrect *region)
{ … }
static void lynxfb_ops_copyarea(struct fb_info *info,
const struct fb_copyarea *region)
{ … }
static void lynxfb_ops_imageblit(struct fb_info *info,
const struct fb_image *image)
{ … }
static int lynxfb_ops_pan_display(struct fb_var_screeninfo *var,
struct fb_info *info)
{ … }
static inline void lynxfb_set_visual_mode(struct fb_info *info)
{ … }
static inline int lynxfb_set_color_offsets(struct fb_info *info)
{ … }
static int lynxfb_ops_set_par(struct fb_info *info)
{ … }
static inline unsigned int chan_to_field(unsigned int chan,
struct fb_bitfield *bf)
{ … }
static int __maybe_unused lynxfb_suspend(struct device *dev)
{ … }
static int __maybe_unused lynxfb_resume(struct device *dev)
{ … }
static int lynxfb_ops_check_var(struct fb_var_screeninfo *var,
struct fb_info *info)
{ … }
static int lynxfb_ops_setcolreg(unsigned int regno,
unsigned int red,
unsigned int green,
unsigned int blue,
unsigned int transp,
struct fb_info *info)
{ … }
static int lynxfb_ops_blank(int blank, struct fb_info *info)
{ … }
static int sm750fb_set_drv(struct lynxfb_par *par)
{ … }
static const struct fb_ops lynxfb_ops = …;
static const struct fb_ops lynxfb_ops_with_cursor = …;
static const struct fb_ops lynxfb_ops_accel = …;
static const struct fb_ops lynxfb_ops_accel_with_cursor = …;
static int lynxfb_set_fbinfo(struct fb_info *info, int index)
{ … }
static void sm750fb_setup(struct sm750_dev *sm750_dev, char *src)
{ … }
static void sm750fb_framebuffer_release(struct sm750_dev *sm750_dev)
{ … }
static int sm750fb_framebuffer_alloc(struct sm750_dev *sm750_dev, int fbidx)
{ … }
static int lynxfb_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *ent)
{ … }
static void lynxfb_pci_remove(struct pci_dev *pdev)
{ … }
static int __init lynxfb_setup(char *options)
{ … }
static const struct pci_device_id smi_pci_table[] = …;
MODULE_DEVICE_TABLE(pci, smi_pci_table);
static SIMPLE_DEV_PM_OPS(lynxfb_pm_ops, lynxfb_suspend, lynxfb_resume);
static struct pci_driver lynxfb_driver = …;
static int __init lynxfb_init(void)
{ … }
module_init(…) …;
static void __exit lynxfb_exit(void)
{ … }
module_exit(lynxfb_exit);
module_param(g_option, charp, 0444);
MODULE_PARM_DESC(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;