#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/string.h>
#include <linux/slab.h>
#define OCFB_CTRL …
#define OCFB_STAT …
#define OCFB_HTIM …
#define OCFB_VTIM …
#define OCFB_HVLEN …
#define OCFB_VBARA …
#define OCFB_PALETTE …
#define OCFB_CTRL_VEN …
#define OCFB_CTRL_HIE …
#define OCFB_CTRL_PC …
#define OCFB_CTRL_CD8 …
#define OCFB_CTRL_CD16 …
#define OCFB_CTRL_CD24 …
#define OCFB_CTRL_CD32 …
#define OCFB_CTRL_VBL1 …
#define OCFB_CTRL_VBL2 …
#define OCFB_CTRL_VBL4 …
#define OCFB_CTRL_VBL8 …
#define PALETTE_SIZE …
#define OCFB_NAME …
static char *mode_option;
static const struct fb_videomode default_mode = …;
struct ocfb_dev { … };
#ifndef MODULE
static int __init ocfb_setup(char *options)
{ … }
#endif
static inline u32 ocfb_readreg(struct ocfb_dev *fbdev, loff_t offset)
{ … }
static void ocfb_writereg(struct ocfb_dev *fbdev, loff_t offset, u32 data)
{ … }
static int ocfb_setupfb(struct ocfb_dev *fbdev)
{ … }
static int ocfb_setcolreg(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp,
struct fb_info *info)
{ … }
static int ocfb_init_fix(struct ocfb_dev *fbdev)
{ … }
static int ocfb_init_var(struct ocfb_dev *fbdev)
{ … }
static const struct fb_ops ocfb_ops = …;
static int ocfb_probe(struct platform_device *pdev)
{ … }
static void ocfb_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id ocfb_match[] = …;
MODULE_DEVICE_TABLE(of, ocfb_match);
static struct platform_driver ocfb_driver = …;
static int __init ocfb_init(void)
{ … }
static void __exit ocfb_exit(void)
{ … }
module_init(…) …;
module_exit(ocfb_exit);
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
module_param(mode_option, charp, 0);
MODULE_PARM_DESC(…) …;