drv_ttslicer.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #ifndef _DRV_TTSLICER_H_
  2. #define _DRV_TTSLICER_H_
  3. #include "drv_types.h"
  4. //********************************************************************
  5. //********************************************************************
  6. #include "drv_devices.h"
  7. #define TTS_DEV_PATH "/dev/vbi0"
  8. #define TTS_DEV_NUM 1
  9. //********************************************************************
  10. //********************************************************************
  11. #define MAXLINE 28 // 32 // 24 // 8
  12. #define EXTENDLINE 8 // 12 // 4 // 16
  13. #define PACKETSIZE 44
  14. #define MGZ_PAGEBUF_SIZE (MAXLINE * PACKETSIZE) //28 * 44 = 1232
  15. #define MGZ_EXTBUF_SIZE (EXTENDLINE * PACKETSIZE) //352
  16. #define MAX_EXBUFF_PER_PAGE 10 //im not sure if i have changed this in all places!!!
  17. #define TTS_BUFFER_NUM 256
  18. typedef struct _EXTEND_BUFFER_ {
  19. #ifndef CONFIG_TTX_COMPRESS_STORE
  20. UINT8 Data[EXTENDLINE][PACKETSIZE]; //buffer for data
  21. #else
  22. UINT8* Data;
  23. UINT32 zSize;
  24. #endif
  25. UINT32 Size; //size of data stored in array Data[][]
  26. struct _EXTEND_BUFFER_ *pNextLink; //link to next extended buffer
  27. } EXTEND_BUFFER, *PEXTEND_BUFFER;
  28. typedef struct _PAGE_BUFFER_ {
  29. #ifndef CONFIG_TTX_COMPRESS_STORE
  30. UINT8 Data[MAXLINE][PACKETSIZE]; //buffer for data
  31. #else
  32. UINT8* Data;
  33. UINT32 zSize;
  34. #endif
  35. UINT32 Size; //size of data stored in array Data[][]
  36. struct _PAGE_BUFFER_ *pNextPage;
  37. struct _EXTEND_BUFFER_ *pNextELink; //link to extended buffer. we use exbuffer if Data[][] is full so size of page is bigger than MAXLINE*PACKETSIZE
  38. UINT32 ExtBufNum; //number of extended buffer
  39. UINT32 MagNo;
  40. } PAGE_BUFFER, *PPAGE_BUFFER;
  41. //********************************************************************
  42. //********************************************************************
  43. typedef enum {
  44. DEVICE_NONE = 0,
  45. DEVICE_ATT = 1,
  46. DEVICE_DTT = 2,
  47. DEVICE_ACC = 4,
  48. DEVICE_MEDIA = 8,
  49. } DEVICE_TYPE;
  50. typedef enum {
  51. STATUS_NOWORK = 0,
  52. STATUS_Init,
  53. STATUS_InitDone,
  54. STATUS_START,
  55. STATUS_ACTIVE,
  56. STATUS_NOACTIVE,
  57. STATUS_STOP,
  58. STATUS_SHUTDOWN,
  59. } DEVICE_STATUS;
  60. typedef enum {
  61. NOTYPP = 0,
  62. YPPPATH,
  63. } TT_YPP_PATH;
  64. typedef struct _TTIOC_IOData {
  65. UINT16 port;
  66. UINT8 index;
  67. UINT8 value;
  68. } TTIOC_IOData, *TTIOC_IODataPtr;
  69. typedef struct _TTIOC_MMIOData {
  70. UINT32 addr;
  71. UINT32 value;
  72. } TTIOC_MMIOData, *TTIOC_MMIODataPtr;
  73. typedef struct _TTIOC_DRVCTLData {
  74. BOOL bStart;
  75. DEVICE_TYPE type;
  76. } TTIOC_DRVCTLData, *TTIOC_DRVCTLDataPtr;
  77. typedef struct _TTIOC_TTPAGEBuffer {
  78. PPAGE_BUFFER pTtPageHeader;
  79. PPAGE_BUFFER pTtPageTail;
  80. UINT32 TtPageNum;
  81. } TTIOC_TTPAGEBuffer, *TTIOC_TTPAGEBufferPtr;
  82. typedef struct _TTIOC_SUBTITLE {
  83. UINT8 DisplayTTSubtitle;
  84. UINT8 Magazine;
  85. } TTIOC_SUBTITLE, *TTIOC_SUBTITLEPtr;
  86. #define TTS_BYPASS 1
  87. #define TTS_VBI_ID_CC 0x00
  88. #define TTS_VBI_ID_TT 0x03
  89. #define TTS_VBI_ID_WSS625 0x04
  90. #define TTS_VBI_ID_WSSJ 0x05
  91. #define TTS_VBI_ID_VPS 0x06
  92. #define TTS_VBI_FID_ODD 0x01
  93. #define TTS_VBI_FID_EVEN 0x00
  94. #define TTS_VBI_SYS_NON 0x00
  95. #define TTS_VBI_SYS_TT625B 0x01
  96. #define TTS_VBI_SYS_TT625C 0x02
  97. #define TTS_VBI_SYS_TT625D 0x03
  98. #define TTS_VBI_SYS_TT525B 0x05
  99. #define TTS_VBI_SYS_TT525C 0x06
  100. #define TTS_VBI_SYS_TT525D 0x07
  101. /* 16 bytes alignment in ttslicer HW DMA */
  102. #define TTSLICER_DMA_ALIGN 16
  103. #define TTS_ALIGN(addr,size) (((addr)+(size)-1)&(~((size)-1)))
  104. #define OTHER_CMDBUF_SIZE 2048 //"46" * 42
  105. #define OTHER_ERROR_NONE 0
  106. #define OTHER_ERROR_BUFSIZE 1 // Size is smaller than OTHER_CMDBUF_SIZE
  107. #define OTHER_ERROR_E 2 // copy CmdBuf
  108. typedef struct _TTIOC_OTHERBuffer {
  109. UINT8 ErrCode;
  110. UINT32 buff_idx;
  111. UINT32 buff_size;
  112. UINT8 *buff;
  113. } TTIOC_OTHERBuffer, *PTTIOC_OTHERBuffer;
  114. //********************************************************************
  115. //********************************************************************
  116. #define TTIOC_MAGIC 'u'
  117. #define TTIOC_BASE 192
  118. #define TTIOC_DRVCTL _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x03, TTIOC_DRVCTLData)
  119. #define TTIOC_GET_TYPE _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x04, DEVICE_TYPE)
  120. #define TTIOC_GET_OTHERBUFFER _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x06, TTIOC_OTHERBuffer)
  121. #define TTIOC_GET_TTSTATUS _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x08, DEVICE_STATUS)
  122. #define TTIOC_CLEAR_WAIT_DATA _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0B, INT32)
  123. #define TTIOC_GET_EXT_BUF_LIST _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0D, TTIOC_EXT_BUF_LIST)
  124. #define TTIOC_RESET _IOWR(TTIOC_MAGIC, TTIOC_BASE+0x0E, INT32)
  125. #define TTIOC_GET_DEBUG_CONFIG1 _IOR(TTIOC_MAGIC, TTIOC_BASE+0x0F, UINT32)
  126. //********************************************************************
  127. //********************************************************************
  128. #endif //_DRV_TTSLICER_H_