linux/drivers/video/fbdev/sm712fb.c

/*
 * Silicon Motion SM7XX frame buffer device
 *
 * Copyright (C) 2006 Silicon Motion Technology Corp.
 * Authors:  Ge Wang, [email protected]
 *	     Boyod [email protected]
 *
 * Copyright (C) 2009 Lemote, Inc.
 * Author:   Wu Zhangjin, [email protected]
 *
 * Copyright (C) 2011 Igalia, S.L.
 * Author:   Javier M. Mellid <[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.
 *
 * Framebuffer driver for Silicon Motion SM710, SM712, SM721 and SM722 chips
 */

#include <linux/aperture.h>
#include <linux/io.h>
#include <linux/fb.h>
#include <linux/pci.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/uaccess.h>
#include <linux/module.h>
#include <linux/console.h>

#include <linux/pm.h>

#include "sm712.h"

struct smtcfb_screen_info {};

/*
 * Private structure
 */
struct smtcfb_info {};

void __iomem *smtc_regbaseaddress;	/* Memory Map IO starting address */

static const struct fb_var_screeninfo smtcfb_var =;

static struct fb_fix_screeninfo smtcfb_fix =;

struct vesa_mode {};

static const struct vesa_mode vesa_mode_table[] =;

/**********************************************************************
			 SM712 Mode table.
 **********************************************************************/
static const struct modeinit vgamode[] =;

static struct smtcfb_screen_info smtc_scr_info;

static char *mode_option;

/* process command line options, get vga parameter */
static void __init sm7xx_vga_setup(char *options)
{}

static void sm712_setpalette(int regno, unsigned int red, unsigned int green,
			     unsigned int blue, struct fb_info *info)
{}

/* chan_to_field
 *
 * convert a colour value into a field position
 *
 * from pxafb.c
 */

static inline unsigned int chan_to_field(unsigned int chan,
					 struct fb_bitfield *bf)
{}

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

static int smtc_setcolreg(unsigned int regno, unsigned int red,
			  unsigned int green, unsigned int blue,
			  unsigned int trans, struct fb_info *info)
{}

static ssize_t smtcfb_read(struct fb_info *info, char __user *buf,
			   size_t count, loff_t *ppos)
{}

static ssize_t smtcfb_write(struct fb_info *info, const char __user *buf,
			    size_t count, loff_t *ppos)
{}

static void sm7xx_set_timing(struct smtcfb_info *sfb)
{}

static void smtc_set_timing(struct smtcfb_info *sfb)
{}

static void smtcfb_setmode(struct smtcfb_info *sfb)
{}

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

static int smtc_set_par(struct fb_info *info)
{}

static const struct fb_ops smtcfb_ops =;

/*
 * Unmap in the memory mapped IO registers
 */

static void smtc_unmap_mmio(struct smtcfb_info *sfb)
{}

/*
 * Map in the screen memory
 */

static int smtc_map_smem(struct smtcfb_info *sfb,
			 struct pci_dev *pdev, u_long smem_len)
{}

/*
 * Unmap in the screen memory
 *
 */
static void smtc_unmap_smem(struct smtcfb_info *sfb)
{}

/*
 * We need to wake up the device and make sure its in linear memory mode.
 */
static inline void sm7xx_init_hw(void)
{}

static u_long sm7xx_vram_probe(struct smtcfb_info *sfb)
{}

static void sm7xx_resolution_probe(struct smtcfb_info *sfb)
{}

static int smtcfb_pci_probe(struct pci_dev *pdev,
			    const struct pci_device_id *ent)
{}

/*
 * 0x710 (LynxEM)
 * 0x712 (LynxEM+)
 * 0x720 (Lynx3DM, Lynx3DM+)
 */
static const struct pci_device_id smtcfb_pci_table[] =;

MODULE_DEVICE_TABLE(pci, smtcfb_pci_table);

static void smtcfb_pci_remove(struct pci_dev *pdev)
{}

static int __maybe_unused smtcfb_pci_suspend(struct device *device)
{}

static int __maybe_unused smtcfb_pci_resume(struct device *device)
{}

static SIMPLE_DEV_PM_OPS(sm7xx_pm_ops, smtcfb_pci_suspend, smtcfb_pci_resume);

static struct pci_driver smtcfb_driver =;

static int __init sm712fb_init(void)
{}

module_init();

static void __exit sm712fb_exit(void)
{}

module_exit(sm712fb_exit);

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