#ifndef __S3CTVSCALER_H_ |
#define __S3CTVSCALER_H_ |
|
#include "plat/media.h" |
|
#define TVSCALER_IOCTL_MAGIC 'S' |
|
#define PPROC_SET_PARAMS _IO(TVSCALER_IOCTL_MAGIC, 0) |
#define PPROC_START _IO(TVSCALER_IOCTL_MAGIC, 1) |
#define PPROC_STOP _IO(TVSCALER_IOCTL_MAGIC, 2) |
#define PPROC_INTERLACE_MODE _IO(TVSCALER_IOCTL_MAGIC, 3) |
#define PPROC_PROGRESSIVE_MODE _IO(TVSCALER_IOCTL_MAGIC, 4) |
|
|
#define QVGA_XSIZE 320 |
#define QVGA_YSIZE 240 |
|
#define LCD_XSIZE 320 |
#define LCD_YSIZE 240 |
|
#define SCALER_MINOR 251 // Just some number |
|
//#define SYSTEM_RAM 0x08000000 // 128mb |
#define SYSTEM_RAM 0x07800000 // 120mb |
#define RESERVE_POST_MEM 8*1024*1024 // 8mb |
#define PRE_BUFF_SIZE 4*1024*1024 //4 // 4mb |
#define POST_BUFF_SIZE ( RESERVE_POST_MEM - PRE_BUFF_SIZE ) |
|
typedef unsigned int UINT32; |
|
#define post_buff_base_addr 0x55B00000 |
#define POST_BUFF_BASE_ADDR (UINT32)s3c_get_media_memory(S3C_MDEV_TV) |
|
#define USE_DEDICATED_MEM 1 |
|
typedef enum { |
INTERLACE_MODE, |
PROGRESSIVE_MODE |
} s3c_scaler_scan_mode_t; |
|
typedef enum { |
POST_DMA, POST_FIFO |
} s3c_scaler_path_t; |
|
typedef enum { |
ONE_SHOT, FREE_RUN |
} s3c_scaler_run_mode_t; |
|
typedef enum { |
PAL1, PAL2, PAL4, PAL8, |
RGB8, ARGB8, RGB16, ARGB16, RGB18, RGB24, RGB30, ARGB24, |
YC420, YC422, // Non-interleave |
CRYCBY, CBYCRY, YCRYCB, YCBYCR, YUV444 // Interleave |
} cspace_t; |
|
typedef enum |
{ |
HCLK = 0, PLL_EXT = 1, EXT_27MHZ = 3 |
} scaler_clk_src_t; |
|
typedef struct{ |
unsigned int SrcFullWidth; // Source Image Full Width(Virtual screen size) |
unsigned int SrcFullHeight; // Source Image Full Height(Virtual screen size) |
unsigned int SrcStartX; // Source Image Start width offset |
unsigned int SrcStartY; // Source Image Start height offset |
unsigned int SrcWidth; // Source Image Width |
unsigned int SrcHeight; // Source Image Height |
unsigned int SrcFrmSt; // Base Address of the Source Image : Physical Address |
cspace_t SrcCSpace; // Color Space ot the Source Image |
|
unsigned int DstFullWidth; // Source Image Full Width(Virtual screen size) |
unsigned int DstFullHeight; // Source Image Full Height(Virtual screen size) |
unsigned int DstStartX; // Source Image Start width offset |
unsigned int DstStartY; // Source Image Start height offset |
unsigned int DstWidth; // Source Image Width |
unsigned int DstHeight; // Source Image Height |
unsigned int DstFrmSt; // Base Address of the Source Image : Physical Address |
cspace_t DstCSpace; // Color Space ot the Source Image |
|
unsigned int SrcFrmBufNum; // Frame buffer number |
s3c_scaler_run_mode_t Mode; // POST running mode(PER_FRAME or FREE_RUN) |
s3c_scaler_path_t InPath; // Data path of the source image |
s3c_scaler_path_t OutPath; // Data path of the desitination image |
|
}scaler_params_t; |
|
typedef struct{ |
unsigned int pre_phy_addr; |
unsigned char *pre_virt_addr; |
|
unsigned int post_phy_addr; |
unsigned char *post_virt_addr; |
} buff_addr_t; |
|
#endif //__S3CTVSCALER_H_ |