jpeg_drv_common.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. #ifndef __JPEG_DRV_COMMON_H__
  2. #define __JPEG_DRV_COMMON_H__
  3. /* #include <mach/mt_typedefs.h> */
  4. /* #include <mach/typedefs.h> */
  5. #include "jpeg_drv.h"
  6. typedef signed char kal_int8;
  7. typedef signed short kal_int16;
  8. typedef signed int kal_int32;
  9. typedef long long kal_int64;
  10. typedef unsigned char kal_uint8;
  11. typedef unsigned short kal_uint16;
  12. typedef unsigned int kal_uint32;
  13. typedef unsigned long long kal_uint64;
  14. typedef char kal_char;
  15. extern kal_uint32 _jpeg_enc_int_status;
  16. extern kal_uint32 _jpeg_dec_int_status;
  17. extern kal_uint32 _jpeg_dec_mode;
  18. typedef enum {
  19. YUYV,
  20. YVYU,
  21. NV12,
  22. NV21
  23. } JpegDrvEncYUVFormat;
  24. typedef enum {
  25. Q60 = 0x0,
  26. Q80 = 0x1,
  27. Q90 = 0x2,
  28. Q95 = 0x3,
  29. Q39 = 0x4,
  30. Q68 = 0x5,
  31. Q84 = 0x6,
  32. Q92 = 0x7,
  33. Q48 = 0x9,
  34. Q74 = 0xA,
  35. Q87 = 0xB,
  36. Q34 = 0xD,
  37. Q64 = 0xE,
  38. Q82 = 0xF,
  39. Q_ALL = 0x10
  40. } JpegDrvEncQuality;
  41. typedef struct {
  42. kal_uint32 width;
  43. kal_uint32 height;
  44. kal_uint32 yuv_format;
  45. kal_uint32 luma_addr;
  46. kal_uint32 chroma_addr;
  47. } JpegDrvEncSrcCfg;
  48. typedef struct {
  49. kal_uint32 exif_en; /* 0:JPG mode, 1:JFIF/EXIF mode */
  50. kal_uint32 dst_addr;
  51. kal_uint32 dst_size;
  52. kal_uint32 offset_addr;
  53. kal_uint32 byte_offset_mask;
  54. } JpegDrvEncDstCfg;
  55. typedef struct {
  56. kal_uint32 quality;
  57. kal_uint32 restart_interval;
  58. kal_uint32 gmc_disable; /* HW not support */
  59. } JpegDrvEncCtrlCfg;
  60. #define JPEG_DRV_ENC_YUYV (0x00 << 3)
  61. #define JPEG_DRV_ENC_YVYU (0x01 << 3)
  62. #define JPEG_DRV_ENC_NV12 (0x02 << 3)
  63. #define JPEG_DRV_ENC_NV21 (0x03 << 3)
  64. #define JPEG_MSG pr_debug
  65. #define JPEG_WRN pr_warn
  66. #define JPEG_ERR pr_err
  67. #define JPEG_VEB pr_err
  68. /* /////// JPEG Driver Decoder /////// */
  69. /* */
  70. /* */
  71. void jpeg_drv_dec_power_on(void);
  72. void jpeg_drv_dec_power_off(void);
  73. int jpeg_drv_dec_set_config_data(JPEG_DEC_DRV_IN *config);
  74. void jpeg_drv_dec_set_dst_bank0(unsigned int addr_Y, unsigned int addr_U, unsigned int addr_V);
  75. void jpeg_drv_dec_verify_state_and_reset(void);
  76. void jpeg_drv_dec_reset(void);
  77. void jpeg_drv_dec_warm_reset(void);
  78. void jpeg_drv_dec_start(void);
  79. int jpeg_drv_dec_wait(JPEG_DEC_DRV_IN *config);
  80. void jpeg_drv_dec_dump_key_reg(void);
  81. void jpeg_drv_dec_dump_reg(void);
  82. int jpeg_drv_dec_break(void);
  83. void jpeg_drv_dec_set_pause_mcu_idx(unsigned int McuIdx);
  84. void jpeg_drv_dec_resume(unsigned int resume);
  85. kal_uint32 jpeg_drv_dec_get_result(void);
  86. /* ///// JPEG Driver Encoder /////// */
  87. void jpeg_drv_enc_power_on(void);
  88. void jpeg_drv_enc_power_off(void);
  89. kal_uint32 jpeg_drv_enc_src_cfg(JpegDrvEncSrcCfg srcCfg);
  90. kal_uint32 jpeg_drv_enc_dst_buff(JpegDrvEncDstCfg dstCfg);
  91. kal_uint32 jpeg_drv_enc_ctrl_cfg(kal_uint32 exif_en, kal_uint32 quality,
  92. kal_uint32 restart_interval);
  93. void jpeg_drv_enc_verify_state_and_reset(void);
  94. void jpeg_drv_enc_reset(void);
  95. kal_uint32 jpeg_drv_enc_warm_reset(void);
  96. void jpeg_drv_enc_start(void);
  97. kal_uint32 jpeg_drv_enc_set_quality(kal_uint32 quality);
  98. kal_uint32 jpeg_drv_enc_set_img_size(kal_uint32 width, kal_uint32 height);
  99. kal_uint32 jpeg_drv_enc_set_blk_num(kal_uint32 blk_num);
  100. kal_uint32 jpeg_drv_enc_set_luma_addr(kal_uint32 src_luma_addr);
  101. kal_uint32 jpeg_drv_enc_set_chroma_addr(kal_uint32 src_luma_addr);
  102. kal_uint32 jpeg_drv_enc_set_memory_stride(kal_uint32 mem_stride);
  103. kal_uint32 jpeg_drv_enc_set_image_stride(kal_uint32 img_stride);
  104. void jpeg_drv_enc_set_restart_interval(kal_uint32 restart_interval);
  105. kal_uint32 jpeg_drv_enc_set_offset_addr(kal_uint32 offset);
  106. void jpeg_drv_enc_set_EncodeMode(kal_uint32 exif_en); /* 0:JPG mode, 1:JFIF/EXIF mode */
  107. void jpeg_drv_enc_set_burst_type(kal_uint32 burst_type);
  108. kal_uint32 jpeg_drv_enc_set_dst_buff(kal_uint32 dst_addr, kal_uint32 stall_size,
  109. kal_uint32 init_offset, kal_uint32 offset_mask);
  110. kal_uint32 jpeg_drv_enc_set_sample_format_related(kal_uint32 width, kal_uint32 height,
  111. kal_uint32 yuv_format);
  112. kal_uint32 jpeg_drv_enc_get_file_size(void);
  113. kal_uint32 jpeg_drv_enc_get_result(kal_uint32 *fileSize);
  114. kal_uint32 jpeg_drv_enc_get_cycle_count(void);
  115. void jpeg_drv_enc_dump_reg(void);
  116. kal_uint32 jpeg_drv_enc_rw_reg(void);
  117. int jpeg_isr_enc_lisr(void);
  118. int jpeg_isr_dec_lisr(void);
  119. kal_uint32 jpeg_drv_enc_set_src_image(kal_uint32 width, kal_uint32 height, kal_uint32 yuv_format,
  120. kal_uint32 totalEncDU);
  121. kal_uint32 jpeg_drv_enc_set_src_buf(kal_uint32 yuv_format, kal_uint32 img_stride,
  122. kal_uint32 mem_stride, kal_uint32 srcAddr,
  123. kal_uint32 srcAddr_C);
  124. kal_uint32 jpeg_drv_enc_set_encFormat(kal_uint32 encFormat);
  125. #endif