Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
solo6x10.h File Reference
#include <linux/version.h>
#include <linux/pci.h>
#include <linux/i2c.h>
#include <linux/semaphore.h>
#include <linux/mutex.h>
#include <linux/list.h>
#include <linux/wait.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <asm/io.h>
#include <linux/atomic.h>
#include <linux/videodev2.h>
#include <media/v4l2-dev.h>
#include <media/videobuf-core.h>
#include "registers.h"

Go to the source code of this file.

Data Structures

struct  p2m_desc
 
struct  solo_p2m_dev
 
struct  solo_enc_dev
 
struct  solo_enc_buf
 
struct  solo_dev
 

Macros

#define PCI_VENDOR_ID_SOFTLOGIC   0x9413
 
#define PCI_DEVICE_ID_SOLO6010   0x6010
 
#define PCI_DEVICE_ID_SOLO6110   0x6110
 
#define PCI_VENDOR_ID_BLUECHERRY   0x1BB3
 
#define PCI_DEVICE_ID_NEUSOLO_4   0x4304
 
#define PCI_DEVICE_ID_NEUSOLO_9   0x4309
 
#define PCI_DEVICE_ID_NEUSOLO_16   0x4310
 
#define PCI_DEVICE_ID_BC_SOLO_4   0x4E04
 
#define PCI_DEVICE_ID_BC_SOLO_9   0x4E09
 
#define PCI_DEVICE_ID_BC_SOLO_16   0x4E10
 
#define PCI_DEVICE_ID_BC_6110_4   0x5304
 
#define PCI_DEVICE_ID_BC_6110_8   0x5308
 
#define PCI_DEVICE_ID_BC_6110_16   0x5310
 
#define SOLO6X10_NAME   "solo6x10"
 
#define SOLO_MAX_CHANNELS   16
 
#define SOLO6X10_VERSION   "2.1.0"
 
#define SOLO6X10_VER_MAJOR   2
 
#define SOLO6X10_VER_MINOR   0
 
#define SOLO6X10_VER_SUB   0
 
#define SOLO6X10_VER_NUM   KERNEL_VERSION(SOLO6X10_VER_MAJOR, SOLO6X10_VER_MINOR, SOLO6X10_VER_SUB)
 
#define FLAGS_6110   1
 
#define SOLO_I2C_ADAPTERS   2
 
#define SOLO_I2C_TW   0
 
#define SOLO_I2C_SAA   1
 
#define SOLO_NR_P2M   4
 
#define SOLO_NR_P2M_DESC   256
 
#define SOLO_P2M_DMA_ID_MP4E   0
 
#define SOLO_P2M_DMA_ID_JPEG   0
 
#define SOLO_P2M_DMA_ID_MP4D   1
 
#define SOLO_P2M_DMA_ID_G723D   1
 
#define SOLO_P2M_DMA_ID_DISP   2
 
#define SOLO_P2M_DMA_ID_OSG   2
 
#define SOLO_P2M_DMA_ID_G723E   3
 
#define SOLO_P2M_DMA_ID_VIN   3
 
#define SOLO_ENC_MODE_CIF   2
 
#define SOLO_ENC_MODE_HD1   1
 
#define SOLO_ENC_MODE_D1   9
 
#define SOLO_DEFAULT_GOP   30
 
#define SOLO_DEFAULT_QP   3
 
#define SOLO_NR_RING_BUFS   512
 
#define SOLO_CLOCK_MHZ   108
 
#define V4L2_BUF_FLAG_MOTION_ON   0x0400
 
#define V4L2_BUF_FLAG_MOTION_DETECTED   0x0800
 
#define PRIVATE_CIDS
 
#define V4L2_CID_MOTION_ENABLE   (V4L2_CID_PRIVATE_BASE+0)
 
#define V4L2_CID_MOTION_THRESHOLD   (V4L2_CID_PRIVATE_BASE+1)
 
#define V4L2_CID_MOTION_TRACE   (V4L2_CID_PRIVATE_BASE+2)
 
#define OSD_TEXT_MAX   30
 
#define SOLO_DEF_MOT_THRESH   0x0300
 

Enumerations

enum  SOLO_I2C_STATE {
  IIC_STATE_IDLE, IIC_STATE_START, IIC_STATE_READ, IIC_STATE_WRITE,
  IIC_STATE_STOP
}
 
enum  solo_enc_types { SOLO_ENC_TYPE_STD, SOLO_ENC_TYPE_EXT }
 

Functions

void solo_irq_on (struct solo_dev *solo_dev, u32 mask)
 
void solo_irq_off (struct solo_dev *solo_dev, u32 mask)
 
int solo_disp_init (struct solo_dev *solo_dev)
 
void solo_disp_exit (struct solo_dev *solo_dev)
 
int solo_gpio_init (struct solo_dev *solo_dev)
 
void solo_gpio_exit (struct solo_dev *solo_dev)
 
int solo_i2c_init (struct solo_dev *solo_dev)
 
void solo_i2c_exit (struct solo_dev *solo_dev)
 
int solo_p2m_init (struct solo_dev *solo_dev)
 
void solo_p2m_exit (struct solo_dev *solo_dev)
 
int solo_v4l2_init (struct solo_dev *solo_dev)
 
void solo_v4l2_exit (struct solo_dev *solo_dev)
 
int solo_enc_init (struct solo_dev *solo_dev)
 
void solo_enc_exit (struct solo_dev *solo_dev)
 
int solo_enc_v4l2_init (struct solo_dev *solo_dev)
 
void solo_enc_v4l2_exit (struct solo_dev *solo_dev)
 
int solo_g723_init (struct solo_dev *solo_dev)
 
void solo_g723_exit (struct solo_dev *solo_dev)
 
int solo_i2c_isr (struct solo_dev *solo_dev)
 
void solo_p2m_isr (struct solo_dev *solo_dev, int id)
 
void solo_p2m_error_isr (struct solo_dev *solo_dev, u32 status)
 
void solo_enc_v4l2_isr (struct solo_dev *solo_dev)
 
void solo_g723_isr (struct solo_dev *solo_dev)
 
void solo_motion_isr (struct solo_dev *solo_dev)
 
void solo_video_in_isr (struct solo_dev *solo_dev)
 
u8 solo_i2c_readbyte (struct solo_dev *solo_dev, int id, u8 addr, u8 off)
 
void solo_i2c_writebyte (struct solo_dev *solo_dev, int id, u8 addr, u8 off, u8 data)
 
int solo_p2m_dma_t (struct solo_dev *solo_dev, u8 id, int wr, dma_addr_t dma_addr, u32 ext_addr, u32 size)
 
int solo_p2m_dma (struct solo_dev *solo_dev, u8 id, int wr, void *sys_addr, u32 ext_addr, u32 size)
 
int solo_p2m_dma_sg (struct solo_dev *solo_dev, u8 id, struct p2m_desc *pdesc, int wr, struct scatterlist *sglist, u32 sg_off, u32 ext_addr, u32 size)
 
void solo_p2m_push_desc (struct p2m_desc *desc, int wr, dma_addr_t dma_addr, u32 ext_addr, u32 size, int repeat, u32 ext_size)
 
int solo_p2m_dma_desc (struct solo_dev *solo_dev, u8 id, struct p2m_desc *desc, int desc_count)
 
void solo_set_motion_threshold (struct solo_dev *solo_dev, u8 ch, u16 val)
 
int solo_osd_print (struct solo_enc_dev *solo_enc)
 

Macro Definition Documentation

#define FLAGS_6110   1

Definition at line 73 of file solo6x10.h.

#define OSD_TEXT_MAX   30

Definition at line 144 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_6110_16   0x5310

Definition at line 58 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_6110_4   0x5304

Definition at line 56 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_6110_8   0x5308

Definition at line 57 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_SOLO_16   0x4E10

Definition at line 54 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_SOLO_4   0x4E04

Definition at line 52 of file solo6x10.h.

#define PCI_DEVICE_ID_BC_SOLO_9   0x4E09

Definition at line 53 of file solo6x10.h.

#define PCI_DEVICE_ID_NEUSOLO_16   0x4310

Definition at line 50 of file solo6x10.h.

#define PCI_DEVICE_ID_NEUSOLO_4   0x4304

Definition at line 48 of file solo6x10.h.

#define PCI_DEVICE_ID_NEUSOLO_9   0x4309

Definition at line 49 of file solo6x10.h.

#define PCI_DEVICE_ID_SOLO6010   0x6010

Definition at line 41 of file solo6x10.h.

#define PCI_DEVICE_ID_SOLO6110   0x6110

Definition at line 42 of file solo6x10.h.

#define PCI_VENDOR_ID_BLUECHERRY   0x1BB3

Definition at line 46 of file solo6x10.h.

#define PCI_VENDOR_ID_SOFTLOGIC   0x9413

Definition at line 40 of file solo6x10.h.

#define PRIVATE_CIDS

Definition at line 117 of file solo6x10.h.

#define SOLO6X10_NAME   "solo6x10"

Definition at line 61 of file solo6x10.h.

#define SOLO6X10_VER_MAJOR   2

Definition at line 67 of file solo6x10.h.

#define SOLO6X10_VER_MINOR   0

Definition at line 68 of file solo6x10.h.

#define SOLO6X10_VER_NUM   KERNEL_VERSION(SOLO6X10_VER_MAJOR, SOLO6X10_VER_MINOR, SOLO6X10_VER_SUB)

Definition at line 70 of file solo6x10.h.

#define SOLO6X10_VER_SUB   0

Definition at line 69 of file solo6x10.h.

#define SOLO6X10_VERSION   "2.1.0"

Definition at line 66 of file solo6x10.h.

#define SOLO_CLOCK_MHZ   108

Definition at line 110 of file solo6x10.h.

#define SOLO_DEF_MOT_THRESH   0x0300

Definition at line 331 of file solo6x10.h.

#define SOLO_DEFAULT_GOP   30

Definition at line 103 of file solo6x10.h.

#define SOLO_DEFAULT_QP   3

Definition at line 104 of file solo6x10.h.

#define SOLO_ENC_MODE_CIF   2

Definition at line 99 of file solo6x10.h.

#define SOLO_ENC_MODE_D1   9

Definition at line 101 of file solo6x10.h.

#define SOLO_ENC_MODE_HD1   1

Definition at line 100 of file solo6x10.h.

#define SOLO_I2C_ADAPTERS   2

Definition at line 80 of file solo6x10.h.

#define SOLO_I2C_SAA   1

Definition at line 82 of file solo6x10.h.

#define SOLO_I2C_TW   0

Definition at line 81 of file solo6x10.h.

#define SOLO_MAX_CHANNELS   16

Definition at line 63 of file solo6x10.h.

#define SOLO_NR_P2M   4

Definition at line 85 of file solo6x10.h.

#define SOLO_NR_P2M_DESC   256

Definition at line 86 of file solo6x10.h.

#define SOLO_NR_RING_BUFS   512

Definition at line 108 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_DISP   2

Definition at line 93 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_G723D   1

Definition at line 92 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_G723E   3

Definition at line 95 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_JPEG   0

Definition at line 90 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_MP4D   1

Definition at line 91 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_MP4E   0

Definition at line 89 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_OSG   2

Definition at line 94 of file solo6x10.h.

#define SOLO_P2M_DMA_ID_VIN   3

Definition at line 96 of file solo6x10.h.

#define V4L2_BUF_FLAG_MOTION_DETECTED   0x0800

Definition at line 114 of file solo6x10.h.

#define V4L2_BUF_FLAG_MOTION_ON   0x0400

Definition at line 113 of file solo6x10.h.

#define V4L2_CID_MOTION_ENABLE   (V4L2_CID_PRIVATE_BASE+0)

Definition at line 118 of file solo6x10.h.

#define V4L2_CID_MOTION_THRESHOLD   (V4L2_CID_PRIVATE_BASE+1)

Definition at line 119 of file solo6x10.h.

#define V4L2_CID_MOTION_TRACE   (V4L2_CID_PRIVATE_BASE+2)

Definition at line 120 of file solo6x10.h.

Enumeration Type Documentation

Enumerator:
SOLO_ENC_TYPE_STD 
SOLO_ENC_TYPE_EXT 

Definition at line 146 of file solo6x10.h.

Enumerator:
IIC_STATE_IDLE 
IIC_STATE_START 
IIC_STATE_READ 
IIC_STATE_WRITE 
IIC_STATE_STOP 

Definition at line 123 of file solo6x10.h.

Function Documentation

void solo_disp_exit ( struct solo_dev solo_dev)

Definition at line 237 of file disp.c.

int solo_disp_init ( struct solo_dev solo_dev)

Definition at line 212 of file disp.c.

void solo_enc_exit ( struct solo_dev solo_dev)

Definition at line 228 of file enc.c.

int solo_enc_init ( struct solo_dev solo_dev)

Definition at line 210 of file enc.c.

void solo_enc_v4l2_exit ( struct solo_dev solo_dev)

Definition at line 1817 of file v4l2-enc.c.

int solo_enc_v4l2_init ( struct solo_dev solo_dev)

Definition at line 1790 of file v4l2-enc.c.

void solo_enc_v4l2_isr ( struct solo_dev solo_dev)

Definition at line 823 of file v4l2-enc.c.

void solo_g723_exit ( struct solo_dev solo_dev)

Definition at line 394 of file g723.c.

int solo_g723_init ( struct solo_dev solo_dev)

Definition at line 337 of file g723.c.

void solo_g723_isr ( struct solo_dev solo_dev)

Definition at line 81 of file g723.c.

void solo_gpio_exit ( struct solo_dev solo_dev)

Definition at line 98 of file gpio.c.

int solo_gpio_init ( struct solo_dev solo_dev)

Definition at line 92 of file gpio.c.

void solo_i2c_exit ( struct solo_dev solo_dev)

Definition at line 320 of file i2c.c.

int solo_i2c_init ( struct solo_dev solo_dev)

Definition at line 275 of file i2c.c.

int solo_i2c_isr ( struct solo_dev solo_dev)

Definition at line 171 of file i2c.c.

u8 solo_i2c_readbyte ( struct solo_dev solo_dev,
int  id,
u8  addr,
u8  off 
)

Definition at line 31 of file i2c.c.

void solo_i2c_writebyte ( struct solo_dev solo_dev,
int  id,
u8  addr,
u8  off,
u8  data 
)

Definition at line 51 of file i2c.c.

void solo_irq_off ( struct solo_dev solo_dev,
u32  mask 
)

Definition at line 40 of file core.c.

void solo_irq_on ( struct solo_dev solo_dev,
u32  mask 
)

Definition at line 34 of file core.c.

void solo_motion_isr ( struct solo_dev solo_dev)

Definition at line 800 of file v4l2-enc.c.

int solo_osd_print ( struct solo_enc_dev solo_enc)

Definition at line 117 of file enc.c.

int solo_p2m_dma ( struct solo_dev solo_dev,
u8  id,
int  wr,
void sys_addr,
u32  ext_addr,
u32  size 
)

Definition at line 27 of file p2m.c.

int solo_p2m_dma_desc ( struct solo_dev solo_dev,
u8  id,
struct p2m_desc desc,
int  desc_count 
)

Definition at line 84 of file p2m.c.

int solo_p2m_dma_sg ( struct solo_dev solo_dev,
u8  id,
struct p2m_desc pdesc,
int  wr,
struct scatterlist sglist,
u32  sg_off,
u32  ext_addr,
u32  size 
)

Definition at line 140 of file p2m.c.

int solo_p2m_dma_t ( struct solo_dev solo_dev,
u8  id,
int  wr,
dma_addr_t  dma_addr,
u32  ext_addr,
u32  size 
)

Definition at line 50 of file p2m.c.

void solo_p2m_error_isr ( struct solo_dev solo_dev,
u32  status 
)

Definition at line 259 of file p2m.c.

void solo_p2m_exit ( struct solo_dev solo_dev)

Definition at line 275 of file p2m.c.

int solo_p2m_init ( struct solo_dev solo_dev)

Definition at line 283 of file p2m.c.

void solo_p2m_isr ( struct solo_dev solo_dev,
int  id 
)

Definition at line 250 of file p2m.c.

void solo_p2m_push_desc ( struct p2m_desc desc,
int  wr,
dma_addr_t  dma_addr,
u32  ext_addr,
u32  size,
int  repeat,
u32  ext_size 
)

Definition at line 66 of file p2m.c.

void solo_set_motion_threshold ( struct solo_dev solo_dev,
u8  ch,
u16  val 
)

Definition at line 166 of file disp.c.

void solo_v4l2_exit ( struct solo_dev solo_dev)

Definition at line 957 of file v4l2.c.

int solo_v4l2_init ( struct solo_dev solo_dev)

Definition at line 907 of file v4l2.c.

void solo_video_in_isr ( struct solo_dev solo_dev)

Definition at line 79 of file v4l2.c.