#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/mm.h>
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/platform_device.h>
#include <linux/acpi.h>
enum { … };
struct goldfish_fb { … };
static irqreturn_t goldfish_fb_interrupt(int irq, void *dev_id)
{ … }
static inline u32 convert_bitfield(int val, struct fb_bitfield *bf)
{ … }
static int
goldfish_fb_setcolreg(unsigned int regno, unsigned int red, unsigned int green,
unsigned int blue, unsigned int transp, struct fb_info *info)
{ … }
static int goldfish_fb_check_var(struct fb_var_screeninfo *var,
struct fb_info *info)
{ … }
static int goldfish_fb_set_par(struct fb_info *info)
{ … }
static int goldfish_fb_pan_display(struct fb_var_screeninfo *var,
struct fb_info *info)
{ … }
static int goldfish_fb_blank(int blank, struct fb_info *info)
{ … }
static const struct fb_ops goldfish_fb_ops = …;
static int goldfish_fb_probe(struct platform_device *pdev)
{ … }
static void goldfish_fb_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id goldfish_fb_of_match[] = …;
MODULE_DEVICE_TABLE(of, goldfish_fb_of_match);
#ifdef CONFIG_ACPI
static const struct acpi_device_id goldfish_fb_acpi_match[] = …;
MODULE_DEVICE_TABLE(acpi, goldfish_fb_acpi_match);
#endif
static struct platform_driver goldfish_fb_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;