#include "ivtv-driver.h"
#include "ivtv-cards.h"
#include "ivtv-i2c.h"
#include "ivtv-udma.h"
#include "ivtv-mailbox.h"
#include "ivtv-firmware.h"
#include <linux/fb.h>
#include <linux/ivtvfb.h>
#if defined(CONFIG_X86_64) && !defined(CONFIG_UML)
#include <asm/memtype.h>
#endif
static int ivtvfb_card_id = …;
static int ivtvfb_debug;
static bool ivtvfb_force_pat = … IS_ENABLED(…);
static bool osd_laced;
static int osd_depth;
static int osd_upper;
static int osd_left;
static unsigned int osd_yres;
static unsigned int osd_xres;
module_param(ivtvfb_card_id, int, 0444);
module_param_named(debug,ivtvfb_debug, int, 0644);
module_param_named(force_pat, ivtvfb_force_pat, bool, 0644);
module_param(osd_laced, bool, 0444);
module_param(osd_depth, int, 0444);
module_param(osd_upper, int, 0444);
module_param(osd_left, int, 0444);
module_param(osd_yres, uint, 0444);
module_param(osd_xres, uint, 0444);
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_PARM_DESC(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define IVTVFB_DBGFLG_WARN …
#define IVTVFB_DBGFLG_INFO …
#define IVTVFB_DEBUG(x, type, fmt, args...) …
#define IVTVFB_DEBUG_WARN(fmt, args...) …
#define IVTVFB_DEBUG_INFO(fmt, args...) …
#define IVTVFB_ERR(fmt, args...) …
#define IVTVFB_WARN(fmt, args...) …
#define IVTVFB_INFO(fmt, args...) …
#define IVTV_OSD_MAX_WIDTH …
#define IVTV_OSD_MAX_HEIGHT …
#define IVTV_OSD_BPP_8 …
#define IVTV_OSD_BPP_16_444 …
#define IVTV_OSD_BPP_16_555 …
#define IVTV_OSD_BPP_16_565 …
#define IVTV_OSD_BPP_32 …
struct osd_info { … };
struct ivtv_osd_coords { … };
static int ivtvfb_get_framebuffer(struct ivtv *itv, u32 *fbbase,
u32 *fblength)
{ … }
static int ivtvfb_get_osd_coords(struct ivtv *itv,
struct ivtv_osd_coords *osd)
{ … }
static int ivtvfb_set_osd_coords(struct ivtv *itv, const struct ivtv_osd_coords *osd)
{ … }
static int ivtvfb_set_display_window(struct ivtv *itv, struct v4l2_rect *ivtv_window)
{ … }
static int ivtvfb_prep_dec_dma_to_device(struct ivtv *itv,
unsigned long ivtv_dest_addr, void __user *userbuf,
int size_in_bytes)
{ … }
static int ivtvfb_prep_frame(struct ivtv *itv, int cmd, void __user *source,
unsigned long dest_offset, int count)
{ … }
static ssize_t ivtvfb_write(struct fb_info *info, const char __user *buf,
size_t count, loff_t *ppos)
{ … }
static int ivtvfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg)
{ … }
static int ivtvfb_set_var(struct ivtv *itv, struct fb_var_screeninfo *var)
{ … }
static int ivtvfb_get_fix(struct ivtv *itv, struct fb_fix_screeninfo *fix)
{ … }
static int _ivtvfb_check_var(struct fb_var_screeninfo *var, struct ivtv *itv)
{ … }
static int ivtvfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
{ … }
static int ivtvfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
{ … }
static int ivtvfb_set_par(struct fb_info *info)
{ … }
static int ivtvfb_setcolreg(unsigned regno, unsigned red, unsigned green,
unsigned blue, unsigned transp,
struct fb_info *info)
{ … }
static int ivtvfb_blank(int blank_mode, struct fb_info *info)
{ … }
static const struct fb_ops ivtvfb_ops = …;
static void ivtvfb_restore(struct ivtv *itv)
{ … }
static int ivtvfb_init_vidmode(struct ivtv *itv)
{ … }
static int ivtvfb_init_io(struct ivtv *itv)
{ … }
static void ivtvfb_release_buffers (struct ivtv *itv)
{ … }
static int ivtvfb_init_card(struct ivtv *itv)
{ … }
static int __init ivtvfb_callback_init(struct device *dev, void *p)
{ … }
static int ivtvfb_callback_cleanup(struct device *dev, void *p)
{ … }
static int __init ivtvfb_init(void)
{ … }
static void ivtvfb_cleanup(void)
{ … }
module_init(…) …;
module_exit(ivtvfb_cleanup);