linux/drivers/video/fbdev/vt8623fb.c

/*
 * linux/drivers/video/vt8623fb.c - fbdev driver for
 * integrated graphic core in VIA VT8623 [CLE266] chipset
 *
 * Copyright (c) 2006-2007 Ondrej Zajicek <[email protected]>
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file COPYING in the main directory of this archive for
 * more details.
 *
 * Code is based on s3fb, some parts are from David Boucher's viafb
 * (http://davesdomain.org.uk/viafb/)
 */

#include <linux/aperture.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/tty.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/svga.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/console.h> /* Why should fb driver call console functions? because console_lock() */
#include <video/vga.h>

struct vt8623fb_info {};



/* ------------------------------------------------------------------------- */

static const struct svga_fb_format vt8623fb_formats[] =;

static const struct svga_pll vt8623_pll =;

/* CRT timing register sets */

static const struct vga_regset vt8623_h_total_regs[]       =;
static const struct vga_regset vt8623_h_display_regs[]     =;
static const struct vga_regset vt8623_h_blank_start_regs[] =;
static const struct vga_regset vt8623_h_blank_end_regs[]   =;
static const struct vga_regset vt8623_h_sync_start_regs[]  =;
static const struct vga_regset vt8623_h_sync_end_regs[]    =;

static const struct vga_regset vt8623_v_total_regs[]       =;
static const struct vga_regset vt8623_v_display_regs[]     =;
static const struct vga_regset vt8623_v_blank_start_regs[] =;
static const struct vga_regset vt8623_v_blank_end_regs[]   =;
static const struct vga_regset vt8623_v_sync_start_regs[]  =;
static const struct vga_regset vt8623_v_sync_end_regs[]    =;

static const struct vga_regset vt8623_offset_regs[]        =;
static const struct vga_regset vt8623_line_compare_regs[]  =;
static const struct vga_regset vt8623_fetch_count_regs[]   =;
static const struct vga_regset vt8623_start_address_regs[] =;

static const struct svga_timing_regs vt8623_timing_regs     =;


/* ------------------------------------------------------------------------- */


/* Module parameters */

static char *mode_option =;
static int mtrr =;

MODULE_AUTHOR();
MODULE_LICENSE();
MODULE_DESCRIPTION();

module_param(mode_option, charp, 0644);
MODULE_PARM_DESC();
module_param_named(mode, mode_option, charp, 0);
MODULE_PARM_DESC();
module_param(mtrr, int, 0444);
MODULE_PARM_DESC();


/* ------------------------------------------------------------------------- */

static void vt8623fb_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor)
{}

static struct fb_tile_ops vt8623fb_tile_ops =;


/* ------------------------------------------------------------------------- */


/* image data is MSB-first, fb structure is MSB-first too */
static inline u32 expand_color(u32 c)
{}

/* vt8623fb_iplan_imageblit silently assumes that almost everything is 8-pixel aligned */
static void vt8623fb_iplan_imageblit(struct fb_info *info, const struct fb_image *image)
{}

/* vt8623fb_iplan_fillrect silently assumes that almost everything is 8-pixel aligned */
static void vt8623fb_iplan_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
{}


/* image data is MSB-first, fb structure is high-nibble-in-low-byte-first */
static inline u32 expand_pixel(u32 c)
{}

/* vt8623fb_cfb4_imageblit silently assumes that almost everything is 8-pixel aligned */
static void vt8623fb_cfb4_imageblit(struct fb_info *info, const struct fb_image *image)
{}

static void vt8623fb_imageblit(struct fb_info *info, const struct fb_image *image)
{}

static void vt8623fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
{}


/* ------------------------------------------------------------------------- */


static void vt8623_set_pixclock(struct fb_info *info, u32 pixclock)
{}


static int vt8623fb_open(struct fb_info *info, int user)
{}

static int vt8623fb_release(struct fb_info *info, int user)
{}

static int vt8623fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{}


static int vt8623fb_set_par(struct fb_info *info)
{}


static int vt8623fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
				u_int transp, struct fb_info *fb)
{}


static int vt8623fb_blank(int blank_mode, struct fb_info *info)
{}


static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
{}


/* ------------------------------------------------------------------------- */


/* Frame buffer operations */

static const struct fb_ops vt8623fb_ops =;


/* PCI probe */

static int vt8623_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
{}

/* PCI remove */

static void vt8623_pci_remove(struct pci_dev *dev)
{}


/* PCI suspend */

static int __maybe_unused vt8623_pci_suspend(struct device *dev)
{}


/* PCI resume */

static int __maybe_unused vt8623_pci_resume(struct device *dev)
{}

static const struct dev_pm_ops vt8623_pci_pm_ops =;

/* List of boards that we are trying to support */

static const struct pci_device_id vt8623_devices[] =;

MODULE_DEVICE_TABLE(pci, vt8623_devices);

static struct pci_driver vt8623fb_pci_driver =;

/* Cleanup */

static void __exit vt8623fb_cleanup(void)
{}

/* Driver Initialisation */

static int __init vt8623fb_init(void)
{}

/* ------------------------------------------------------------------------- */

/* Modularization */

module_init();
module_exit(vt8623fb_cleanup);