Logo Search packages:      
Sourcecode: linux-fsl-imx51 version File versions  Download package

mxc_v4l2_output.c File Reference

Detailed Description

MXC V4L2 Video Output Driver.

Video4Linux2 Output Device using MXC IPU Post-processing functionality.

Definition in file mxc_v4l2_output.c.

#include <linux/module.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/semaphore.h>
#include <linux/console.h>
#include <linux/fs.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/mxcfb.h>
#include <media/v4l2-ioctl.h>
#include <asm/cacheflush.h>
#include <mach/hardware.h>
#include "mxc_v4l2_output.h"

Go to the source code of this file.


#define LOAD_3FIELDS(vout)
#define QUEUE_SIZE   (MAX_FRAME_NUM + 1)


static u32 bpp_to_fmt (struct fb_info *fbi)
static __inline int dequeue_buf (v4l_queue *q)
static u32 fmt_to_bpp (u32 pixelformat)
static bool format_is_yuv (u32 pixelformat)
static __inline unsigned long get_jiffies (struct timeval *t)
static int init_PP (ipu_channel_params_t *params, vout_data *vout, struct device *dev, struct fb_info *fbi, u16 out_width, u16 out_height)
static int init_VDI (ipu_channel_params_t params, vout_data *vout, struct device *dev, struct fb_info *fbi, u16 out_width, u16 out_height)
static int init_VDI_channel (vout_data *vout, ipu_channel_params_t params)
static int init_VDI_in_channel_buffer (vout_data *vout, uint32_t in_pixel_fmt, uint16_t in_width, uint16_t in_height, uint32_t stride, dma_addr_t phyaddr_0, dma_addr_t phyaddr_1, uint32_t u_offset, uint32_t v_offset)
 MODULE_AUTHOR ("Freescale Semiconductor, Inc.")
 MODULE_DESCRIPTION ("V4L2-driver for MXC video output")
 module_exit (mxc_v4l2out_clean)
 module_init (mxc_v4l2out_init)
 module_param (video_nr, int, 0444)
static int mxc_allocate_buffers (dma_addr_t bufs_paddr[], void *bufs_vaddr[], int num_buf, int size)
static int mxc_free_buffers (dma_addr_t bufs_paddr[], void *bufs_vaddr[], int num_buf, int size)
static int mxc_get_v42lout_control (vout_data *vout, struct v4l2_control *c)
static int mxc_set_v42lout_control (vout_data *vout, struct v4l2_control *c)
static void mxc_v4l2out_clean (void)
static int mxc_v4l2out_close (struct file *file)
static long mxc_v4l2out_do_ioctl (struct file *file, unsigned int ioctlnr, void *arg)
static int mxc_v4l2out_g_fmt (vout_data *vout, struct v4l2_format *f)
static int mxc_v4l2out_init (void)
static long mxc_v4l2out_ioctl (struct file *file, unsigned int cmd, unsigned long arg)
static int mxc_v4l2out_mmap (struct file *file, struct vm_area_struct *vma)
static int mxc_v4l2out_open (struct file *file)
static unsigned int mxc_v4l2out_poll (struct file *file, struct poll_table_struct *wait)
static int mxc_v4l2out_probe (struct platform_device *pdev)
static int mxc_v4l2out_remove (struct platform_device *pdev)
static int mxc_v4l2out_s_fmt (vout_data *vout, struct v4l2_format *f)
static int mxc_v4l2out_streamoff (vout_data *vout)
static int mxc_v4l2out_streamon (vout_data *vout)
static void mxc_v4l2out_timer_handler (unsigned long arg)
static irqreturn_t mxc_v4l2out_work_irq_handler (int irq, void *dev_id)
static __inline int peek_next_buf (v4l_queue *q)
static __inline int queue_buf (v4l_queue *q, int idx)
static __inline int queue_size (v4l_queue *q)
static void setup_next_buf_timer (vout_data *vout, int index)
static void timer_work_func (struct work_struct *work)
static int valid_mode (u32 palette)
static int wait_for_disp_vsync (vout_data *vout)


uint32_t g_buf_dq_cnt
uint32_t g_buf_output_cnt
uint32_t g_buf_q_cnt
uint32_t g_irq_cnt
static spinlock_t g_lock = SPIN_LOCK_UNLOCKED
vout_data * g_vout
static unsigned int ipu_ic_out_max_width_size
static int last_index_c
static int last_index_n
struct v4l2_output mxc_outputs [2]
static struct platform_device mxc_v4l2out_device
static struct platform_driver mxc_v4l2out_driver
static struct v4l2_file_operations mxc_v4l2out_fops
static struct video_device mxc_v4l2out_template
static int video_nr = 16

Generated by  Doxygen 1.6.0   Back to index