jpeg_drv_6589_common.h 4.4 KB

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