linux/drivers/media/video/mxc/capture/csi_v4l2_capture.c File Reference

Video For Linux 2 capture driver. More...

Functions

static int csi_v4l2_master_attach (struct v4l2_int_device *slave)
static void csi_v4l2_master_detach (struct v4l2_int_device *slave)
static u8 camera_power (cam_data *cam, bool cameraOn)
static void camera_callback (u32 mask, void *dev)
static int csi_cap_image (cam_data *cam)
static int csi_free_frame_buf (cam_data *cam)
static int csi_allocate_frame_buf (cam_data *cam, int count)
static void csi_free_frames (cam_data *cam)
static int csi_v4l2_buffer_status (cam_data *cam, struct v4l2_buffer *buf)
static int valid_mode (u32 palette)
static int csi_streamon (cam_data *cam)
static int csi_streamoff (cam_data *cam)
static int start_preview (cam_data *cam)
static int stop_preview (cam_data *cam)
static int csi_v4l2_g_fmt (cam_data *cam, struct v4l2_format *f)
static int csi_v4l2_s_fmt (cam_data *cam, struct v4l2_format *f)
static int csi_v4l2_s_param (cam_data *cam, struct v4l2_streamparm *parm)
static int csi_v4l_dqueue (cam_data *cam, struct v4l2_buffer *buf)
static int csi_v4l_open (struct file *file)
static int csi_v4l_close (struct file *file)
static long csi_v4l_do_ioctl (struct file *file, unsigned int ioctlnr, void *arg)
static int csi_mmap (struct file *file, struct vm_area_struct *vma)
static void init_camera_struct (cam_data *cam)
static int csi_v4l2_suspend (struct platform_device *pdev, pm_message_t state)
static int csi_v4l2_resume (struct platform_device *pdev)
static __init int camera_init (void)
static void __exit camera_exit (void)

Variables

static struct v4l2_int_master csi_v4l2_master
static struct v4l2_file_operations csi_v4l_fops
static struct platform_driver csi_v4l2_driver

Detailed Description

Video For Linux 2 capture driver.

This file is derived from mxc_v4l2_capture.c


Function Documentation

static void camera_callback ( u32  mask,
void *  dev 
) [static]

Camera V4l2 callback function.

Parameters:
mask u32
dev void device structure
Returns:
none

Referenced by init_camera_struct().

static void __exit camera_exit ( void   )  [static]

Exit and cleanup for the V4L2

static __init int camera_init ( void   )  [static]

Entry point for the V4L2

Returns:
Error code indicating success or failure
static u8 camera_power ( cam_data cam,
bool  cameraOn 
) [static]

camera_power function Turns Sensor power On/Off

Parameters:
cam cam data struct
cameraOn true to turn camera on, false to turn off power.
Returns:
status

References csi_enable_mclk().

Referenced by csi_v4l2_resume(), and csi_v4l2_suspend().

static int csi_allocate_frame_buf ( cam_data cam,
int  count 
) [static]

Allocate frame buffers

Parameters:
cam Structure cam_data *
count int number of buffer need to allocated
Returns:
status -0 Successfully allocated a buffer, -ENOBUFS failed.

References csi_free_frame_buf().

Referenced by csi_v4l_do_ioctl().

static int csi_cap_image ( cam_data cam  )  [static]

Make csi ready for capture image.

Parameters:
cam structure cam_data *
Returns:
status 0 success

Referenced by csi_streamon().

static int csi_free_frame_buf ( cam_data cam  )  [static]

Free frame buffers

Parameters:
cam Structure cam_data *
Returns:
status 0 success.

Referenced by csi_allocate_frame_buf(), csi_streamoff(), and csi_v4l_do_ioctl().

static void csi_free_frames ( cam_data cam  )  [static]

Free frame buffers status

Parameters:
cam Structure cam_data *
Returns:
none

Referenced by csi_streamoff().

static int csi_mmap ( struct file *  file,
struct vm_area_struct *  vma 
) [static]

V4L interface - mmap function

Parameters:
file structure file *
vma structure vm_area_struct *
Returns:
status 0 Success, EINTR busy lock error, ENOBUFS remap_page error
static int csi_streamoff ( cam_data cam  )  [static]

Stop stream I/O

Parameters:
cam structure cam_data *
Returns:
status 0 Success

References csi_free_frame_buf(), and csi_free_frames().

Referenced by csi_v4l_do_ioctl().

static int csi_streamon ( cam_data cam  )  [static]

Start stream I/O

Parameters:
cam structure cam_data *
Returns:
status 0 Success

References csi_cap_image().

Referenced by csi_v4l_do_ioctl().

static int csi_v4l2_buffer_status ( cam_data cam,
struct v4l2_buffer *  buf 
) [static]

Return the buffer status

Parameters:
cam Structure cam_data *
buf Structure v4l2_buffer *
Returns:
status 0 success, EINVAL failed.

Referenced by csi_v4l_do_ioctl().

static int csi_v4l2_g_fmt ( cam_data cam,
struct v4l2_format *  f 
) [static]
Parameters:
cam structure cam_data *
f structure v4l2_format *
Returns:
status 0 success, EINVAL failed

Referenced by csi_v4l_do_ioctl().

static int csi_v4l2_master_attach ( struct v4l2_int_device *  slave  )  [static]

Initializes the camera driver.

References csi_enable_mclk().

static void csi_v4l2_master_detach ( struct v4l2_int_device *  slave  )  [static]

Disconnects the camera driver.

static int csi_v4l2_resume ( struct platform_device *  pdev  )  [static]

This function is called to bring the sensor back from a low power state. Refer to the document driver-model/driver.txt in the kernel source tree for more information.

Parameters:
pdev the device structure
Returns:
The function returns 0 on success and -1 on failure

References camera_power(), and start_preview().

static int csi_v4l2_s_fmt ( cam_data cam,
struct v4l2_format *  f 
) [static]

V4L2 - csi_v4l2_s_fmt function

Parameters:
cam structure cam_data *
f structure v4l2_format *
Returns:
status 0 success, EINVAL failed

References valid_mode().

Referenced by csi_v4l_do_ioctl().

static int csi_v4l2_s_param ( cam_data cam,
struct v4l2_streamparm *  parm 
) [static]

V4L2 - csi_v4l2_s_param function Allows setting of capturemode and frame rate.

Parameters:
cam structure cam_data *
parm structure v4l2_streamparm *
Returns:
status 0 success, EINVAL failed

References stop_preview().

Referenced by csi_v4l_do_ioctl().

static int csi_v4l2_suspend ( struct platform_device *  pdev,
pm_message_t  state 
) [static]

This function is called to put the sensor in a low power state. Refer to the document driver-model/driver.txt in the kernel source tree for more information.

Parameters:
pdev the device structure used to give information on which I2C to suspend
state the power state the device is entering
Returns:
The function returns 0 on success and -1 on failure.

References camera_power(), and stop_preview().

static int csi_v4l_close ( struct file *  file  )  [static]

V4L interface - close function

Parameters:
file struct file *
Returns:
0 success

References csi_enable_mclk(), and stop_preview().

static long csi_v4l_do_ioctl ( struct file *  file,
unsigned int  ioctlnr,
void *  arg 
) [static]

V4L interface - ioctl function

Parameters:
file struct file*
ioctlnr unsigned int
arg void*
Returns:
0 success, ENODEV for invalid device instance, -1 for other errors.

References cap, csi_allocate_frame_buf(), csi_free_frame_buf(), csi_streamoff(), csi_streamon(), csi_v4l2_buffer_status(), csi_v4l2_g_fmt(), csi_v4l2_s_fmt(), csi_v4l2_s_param(), csi_v4l_dqueue(), start_preview(), and stop_preview().

static int csi_v4l_dqueue ( cam_data cam,
struct v4l2_buffer *  buf 
) [static]

Dequeue one V4L capture buffer

Parameters:
cam structure cam_data *
buf structure v4l2_buffer *
Returns:
status 0 success, EINVAL invalid frame number ETIME timeout, ERESTARTSYS interrupted by user

Referenced by csi_v4l_do_ioctl().

static int csi_v4l_open ( struct file *  file  )  [static]

V4L interface - open function

Parameters:
file structure file *
Returns:
status 0 success, ENODEV invalid device instance, ENODEV timeout, ERESTARTSYS interrupted by user

References csi_enable_mclk().

static void init_camera_struct ( cam_data cam  )  [static]

initialize cam_data structure

Parameters:
cam structure cam_data *
Returns:
status 0 Success

References camera_callback().

static int start_preview ( cam_data cam  )  [static]

start the viewfinder job

Parameters:
cam structure cam_data *
Returns:
status 0 Success

Referenced by csi_v4l2_resume(), and csi_v4l_do_ioctl().

static int stop_preview ( cam_data cam  )  [static]

shut down the viewfinder job

Parameters:
cam structure cam_data *
Returns:
status 0 Success

Referenced by csi_v4l2_s_param(), csi_v4l2_suspend(), csi_v4l_close(), and csi_v4l_do_ioctl().

static int valid_mode ( u32  palette  )  [inline, static]

Indicates whether the palette is supported.

Parameters:
palette V4L2_PIX_FMT_RGB565, V4L2_PIX_FMT_UYVY or V4L2_PIX_FMT_YUV420
Returns:
0 if failed

Referenced by csi_v4l2_s_fmt().


Variable Documentation

struct platform_driver csi_v4l2_driver [static]
Initial value:
 {
        .driver = {
                   .name = "csi_v4l2",
                   },
        .probe = csi_v4l2_probe,
        .remove = __devexit_p(csi_v4l2_remove),




        .shutdown = NULL,
}

This structure contains pointers to the power management callback functions.

struct v4l2_int_master csi_v4l2_master [static]
Initial value:

Information about this driver.

struct v4l2_file_operations csi_v4l_fops [static]
Initial value:
 {
        .owner = THIS_MODULE,
        .open = csi_v4l_open,
        .release = csi_v4l_close,
        .read = csi_v4l_read,
        .ioctl = csi_v4l_ioctl,
        .mmap = csi_mmap,
}

This structure defines the functions to be called in this driver.

footer
©  Freescale Semiconductor, Inc., 2007.  All rights reserved.
Freescale Confidential Proprietary
NDA Required
doxygen