#include <linux/module.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/font.h>
#include <linux/mutex.h>
#include <linux/videodev2.h>
#include <linux/kthread.h>
#include <linux/freezer.h>
#include <linux/fb.h>
#include <media/videobuf2-vmalloc.h>
#include <media/v4l2-device.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-fh.h>
#include <media/v4l2-event.h>
#include <media/v4l2-common.h>
#include "vivid-core.h"
#include "vivid-osd.h"
#define MAX_OSD_WIDTH …
#define MAX_OSD_HEIGHT …
static const u16 rgb555[16] = …;
static const u16 rgb565[16] = …;
void vivid_clear_fb(struct vivid_dev *dev)
{ … }
static int vivid_fb_ioctl(struct fb_info *info, unsigned cmd, unsigned long arg)
{ … }
static int vivid_fb_set_var(struct vivid_dev *dev, struct fb_var_screeninfo *var)
{ … }
static int vivid_fb_get_fix(struct vivid_dev *dev, struct fb_fix_screeninfo *fix)
{ … }
static int _vivid_fb_check_var(struct fb_var_screeninfo *var, struct vivid_dev *dev)
{ … }
static int vivid_fb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{ … }
static int vivid_fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
{ … }
static int vivid_fb_set_par(struct fb_info *info)
{ … }
static int vivid_fb_setcolreg(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp,
struct fb_info *info)
{ … }
static int vivid_fb_blank(int blank_mode, struct fb_info *info)
{ … }
static const struct fb_ops vivid_fb_ops = …;
static int vivid_fb_init_vidmode(struct vivid_dev *dev)
{ … }
void vivid_fb_release_buffers(struct vivid_dev *dev)
{ … }
int vivid_fb_init(struct vivid_dev *dev)
{ … }