diff options
author | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-17 17:53:57 +0200 |
---|---|---|
committer | codeworkx <codeworkx@cyanogenmod.com> | 2012-09-18 16:31:59 +0200 |
commit | c28265764ec6ad9995eb0c761a376ffc9f141fcd (patch) | |
tree | 3ad899757480d47deb2be6011509a4243e8e0dc2 /drivers/media/video/m9mo.h | |
parent | 0ddbcb39c0dc0318f68d858f25a96a074142af2f (diff) | |
download | kernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.zip kernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.tar.gz kernel_samsung_smdk4412-c28265764ec6ad9995eb0c761a376ffc9f141fcd.tar.bz2 |
applied patches from i9305 jb sources, updated mali to r3p0
Change-Id: Iec4bc4e2fb59e2cf5b4d25568a644d4e3719565e
Diffstat (limited to 'drivers/media/video/m9mo.h')
-rw-r--r-- | drivers/media/video/m9mo.h | 230 |
1 files changed, 209 insertions, 21 deletions
diff --git a/drivers/media/video/m9mo.h b/drivers/media/video/m9mo.h index 0c3f24c..4da72a2 100644 --- a/drivers/media/video/m9mo.h +++ b/drivers/media/video/m9mo.h @@ -71,12 +71,12 @@ u8 buf_port_seting0[] = { u8 buf_port_seting1[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; u8 buf_port_seting2[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -96,35 +96,41 @@ enum m9mo_prev_frmsize { M9MO_PREVIEW_VGA, M9MO_PREVIEW_D1, M9MO_PREVIEW_WVGA, + M9MO_PREVIEW_960_720, + M9MO_PREVIEW_1080_720, M9MO_PREVIEW_720P, -#if defined(CONFIG_MACH_Q1_BD) - M9MO_PREVIEW_880_720, - M9MO_PREVIEW_1200_800, - M9MO_PREVIEW_1280_800, - M9MO_PREVIEW_1280_768, - M9MO_PREVIEW_1072_800, - M9MO_PREVIEW_980_800, -#endif M9MO_PREVIEW_1080P, M9MO_PREVIEW_HDR, M9MO_PREVIEW_720P_60FPS, M9MO_PREVIEW_VGA_60FPS, + M9MO_PREVIEW_1080P_DUAL, + M9MO_PREVIEW_720P_DUAL, + M9MO_PREVIEW_VGA_DUAL, + M9MO_PREVIEW_QVGA_DUAL, }; enum m9mo_cap_frmsize { + M9MO_CAPTURE_HD, /* 960 x 720 */ M9MO_CAPTURE_1MP, /* 1024 x 768 */ M9MO_CAPTURE_2MPW, /* 1920 x 1080 */ M9MO_CAPTURE_3MP, /* 1984 x 1488 */ + M9MO_CAPTURE_4MP, /* 2304 x 1728 */ M9MO_CAPTURE_5MP, /* 2592 x 1944 */ M9MO_CAPTURE_8MP, /* 3264 x 2448 */ M9MO_CAPTURE_10MP, /* 3648 x 2736 */ - M9MO_CAPTURE_12MPW, /* 4608 x 2768 */ + M9MO_CAPTURE_12MPW, /* 4608 x 2592 */ M9MO_CAPTURE_14MP, /* 4608 x 3072 */ M9MO_CAPTURE_16MP, /* 4608 x 3456 */ - M9MO_CAPTURE_POSTWVGA, /* 800 x 480 */ + M9MO_CAPTURE_RAW, /* 4088 x 2500 */ +}; + +enum m9mo_post_frmsize { + M9MO_CAPTURE_POSTQVGA, /* 320 x 240 */ M9MO_CAPTURE_POSTVGA, /* 640 x 480 */ - M9MO_CAPTURE_POSTWHD, /* 1280 x 720 */ M9MO_CAPTURE_POSTHD, /* 960 x 720 */ + M9MO_CAPTURE_POSTP, /* 1056 x 704 */ + M9MO_CAPTURE_POSTWVGA, /* 800 x 480 */ + M9MO_CAPTURE_POSTWHD, /* 1280 x 720 */ }; enum cam_frmratio { @@ -184,6 +190,24 @@ struct m9mo_focus { unsigned int pos_y; }; +struct m9mo_factory_punt_data { + unsigned int min; + unsigned int max; + unsigned int num; +}; + +struct m9mo_factory_zoom_data { + unsigned int range_min; + unsigned int range_max; + unsigned int slope_min; + unsigned int slope_max; +}; + +struct m9mo_factory_zoom_slope_data { + unsigned int min; + unsigned int max; +}; + struct m9mo_exif { char unique_id[7]; u32 exptime; /* us */ @@ -192,6 +216,9 @@ struct m9mo_exif { int tv; /* shutter speed */ int bv; /* brightness */ int ebv; /* exposure bias */ + int av; /* Aperture */ + int focal_length; + int focal_35mm_length; }; struct m9mo_state { @@ -205,6 +232,7 @@ struct m9mo_state { const struct m9mo_frmsizeenum *preview; const struct m9mo_frmsizeenum *capture; + const struct m9mo_frmsizeenum *postview; enum v4l2_pix_format_mode format_mode; enum v4l2_sensor_mode sensor_mode; @@ -212,18 +240,36 @@ struct m9mo_state { enum v4l2_scene_mode scene_mode; int vt_mode; int zoom; - int optical_zoom; + int smart_zoom_mode; int m9mo_fw_done; int fw_info_done; unsigned int fps; + + int factory_down_check; + int factory_result_check; + int factory_end_check; + int factory_category; + int factory_byte; + int factory_value; + int factory_value_size; + struct m9mo_focus focus; + struct m9mo_factory_punt_data f_punt_data; + struct m9mo_factory_zoom_data f_zoom_data; + + unsigned int factory_log_addr; + u16 factory_log_size; + int factory_test_num; struct m9mo_jpeg jpeg; struct m9mo_exif exif; - char *fw_version; + int isp_fw_ver; + u8 sensor_ver[10]; + u8 phone_ver[10]; + u8 sensor_type[25]; #ifdef CONFIG_CAM_DEBUG u8 dbg_level; @@ -232,12 +278,68 @@ struct m9mo_state { int facedetect_mode; int running_capture_mode; int fd_eyeblink_cap; + int fd_red_eye_status; + int image_stabilizer_mode; + int ot_status; + int ot_x_loc; + int ot_y_loc; + int ot_width; + int ot_height; + int bracket_wbb_val; unsigned int face_beauty:1; unsigned int recording:1; unsigned int check_dataline:1; int anti_banding; int pixelformat; + + int wb_g_value; + int wb_b_value; + int wb_a_value; + int wb_m_value; + int wb_custom_rg; + int wb_custom_bg; + + int vss_mode; + int dual_capture_start; + int dual_capture_frame; + + int focus_mode; + int focus_range; + int focus_area_mode; + + int f_number; + int iso; + int numerator; + int denominator; + + int AV; + int TV; + int SV; + int EV; + int LV; + + int smart_scene_detect_mode; + + int continueFps; + + int fd_num; + + int caf_state; + + int mode; + + bool stream_on_part2; + + int widget_mode_level; + int gamma_rgb_mon; + int gamma_rgb_cap; + int gamma_tbl_rgb_mon; + int gamma_tbl_rgb_cap; + int color_effect; + + int preview_width; + int preview_height; }; /* Category */ @@ -246,8 +348,10 @@ struct m9mo_state { #define M9MO_CATEGORY_MON 0x02 #define M9MO_CATEGORY_AE 0x03 #define M9MO_CATEGORY_NEW 0x04 +#define M9MO_CATEGORY_PRO_MODE 0x05 #define M9MO_CATEGORY_WB 0x06 #define M9MO_CATEGORY_EXIF 0x07 +#define M9MO_CATEGORY_OT 0x08 #define M9MO_CATEGORY_FD 0x09 #define M9MO_CATEGORY_LENS 0x0A #define M9MO_CATEGORY_CAPPARM 0x0B @@ -269,6 +373,7 @@ struct m9mo_state { #define M9MO_SYS_INT_EN 0x10 #define M9MO_SYS_INT_FACTOR 0x1C #define M9MO_SYS_FRAMESYNC_CNT 0x14 +#define M9MO_SYS_LENS_TIMER 0x28 /* M9MO_CATEGORY_PARAM: 0x01 */ @@ -277,9 +382,14 @@ struct m9mo_state { #define M9MO_PARM_EFFECT 0x0B #define M9MO_PARM_FLEX_FPS 0x67 #define M9MO_PARM_HDMOVIE 0x32 +#define M9MO_PARM_VIDEO_SNAP_IMG_TRANSFER_START 0x3A +#define M9MO_PARM_SEL_FRAME_VIDEO_SNAP 0x3B +#define M9MO_PARM_MON_MOVIE_SELECT 0x3C +#define M9MO_PARM_VSS_MODE 0x6E /* M9MO_CATEGORY_MON: 0x02 */ #define M9MO_MON_ZOOM 0x01 +#define M9MO_MON_HR_ZOOM 0x04 #define M9MO_MON_MON_REVERSE 0x05 #define M9MO_MON_MON_MIRROR 0x06 #define M9MO_MON_SHOT_REVERSE 0x07 @@ -289,7 +399,11 @@ struct m9mo_state { #define M9MO_MON_COLOR_EFFECT 0x0B #define M9MO_MON_CHROMA_LVL 0x0F #define M9MO_MON_EDGE_LVL 0x11 +#define M9MO_MON_EDGE_CTRL 0x20 +#define M9MO_MON_POINT_COLOR 0x22 #define M9MO_MON_TONE_CTRL 0x25 +#define M9MO_MON_START_VIDEO_SNAP_SHOT 0x56 +#define M9MO_MON_VIDEO_SNAP_SHOT_FRAME_COUNT 0x57 /* M9MO_CATEGORY_AE: 0x03 */ #define M9MO_AE_LOCK 0x00 @@ -299,16 +413,52 @@ struct m9mo_state { #define M9MO_AE_INDEX 0x09 #define M9MO_AE_EP_MODE_MON 0x0A #define M9MO_AE_EP_MODE_CAP 0x0B +#define M9MO_AF_AE_LOCK 0x0D #define M9MO_AE_AUTO_BRACKET_EV 0x20 -#define M9MO_AE_ONESHOT_MAX_EXP 0x36 +#define M9MO_AE_STABILITY 0x21 +#define M9MO_AE_EV_PRG_MODE_CAP 0x34 +#define M9MO_AE_EV_PRG_MODE_MON 0x35 +#define M9MO_AE_EV_PRG_F_NUMBER 0x36 +#define M9MO_AE_EV_PRG_SS_NUMERATOR 0x37 +#define M9MO_AE_EV_PRG_SS_DENOMINATOR 0x39 +#define M9MO_AE_EV_PRG_ISO_VALUE 0x3B +#define M9MO_AE_EV_PRG_F_NUMBER_MON 0x3D +#define M9MO_AE_EV_PRG_SS_NUMERATOR_MON 0x3E +#define M9MO_AE_EV_PRG_SS_DENOMINATOR_MON 0x40 +#define M9MO_AE_EV_PRG_ISO_VALUE_MON 0x42 +#define M9MO_AE_NOW_AV 0x54 +#define M9MO_AE_NOW_TV 0x58 +#define M9MO_AE_NOW_SV 0x5C +#define M9MO_AE_NOW_LV 0x52 /* M9MO_CATEGORY_NEW: 0x04 */ +#define M9MO_NEW_TIME_INFO 0x02 #define M9MO_NEW_DETECT_SCENE 0x0B +#define M9MO_NEW_OIS_VERSION 0x1B + +/* M9MO_CATEGORY_PRO_MODE: 0x05 */ +#define M9MO_PRO_SMART_READ1 0x20 +#define M9MO_PRO_SMART_READ2 0x24 +#define M9MO_PRO_SMART_READ3 0x28 /* M9MO_CATEGORY_WB: 0x06 */ #define M9MO_AWB_LOCK 0x00 #define M9MO_WB_AWB_MODE 0x02 #define M9MO_WB_AWB_MANUAL 0x03 +#define M9MO_WB_GBAM_MODE 0x8D +#define M9MO_WB_G_VALUE 0x8E +#define M9MO_WB_B_VALUE 0x8F +#define M9MO_WB_A_VALUE 0x90 +#define M9MO_WB_M_VALUE 0x91 +#define M9MO_WB_K_VALUE 0x92 +#define M9MO_WB_CWB_MODE 0x93 +#define M9MO_WB_SET_CUSTOM_RG 0x94 +#define M9MO_WB_SET_CUSTOM_BG 0x96 +#define M9MO_WB_GET_CUSTOM_RG 0x98 +#define M9MO_WB_GET_CUSTOM_BG 0x9A +#define M9MO_WB_WBB_MODE 0x9C +#define M9MO_WB_WBB_AB 0x9D +#define M9MO_WB_WBB_GM 0x9E /* M9MO_CATEGORY_EXIF: 0x07 */ #define M9MO_EXIF_EXPTIME_NUM 0x00 @@ -321,12 +471,31 @@ struct m9mo_state { #define M9MO_EXIF_EBV_DEN 0x24 #define M9MO_EXIF_ISO 0x28 #define M9MO_EXIF_FLASH 0x2A +#define M9MO_EXIF_AV_NUM 0x10 +#define M9MO_EXIF_AV_DEN 0x14 +#define M9MO_EXIF_FL 0x11 +#define M9MO_EXIF_FL_35 0x13 + +/* M9MO_CATEGORY_OT: 0x08 */ +#define M9MO_OT_TRACKING_CTL 0x00 +#define M9MO_OT_INFO_READY 0x01 +#define M9MO_OT_X_START_LOCATION 0x05 +#define M9MO_OT_Y_START_LOCATION 0x07 +#define M9MO_OT_X_END_LOCATION 0x09 +#define M9MO_OT_Y_END_LOCATION 0x0B +#define M9MO_OT_TRACKING_X_LOCATION 0x10 +#define M9MO_OT_TRACKING_Y_LOCATION 0x12 +#define M9MO_OT_TRACKING_FRAME_WIDTH 0x14 +#define M9MO_OT_TRACKING_FRAME_HEIGHT 0x16 +#define M9MO_OT_TRACKING_STATUS 0x18 +#define M9MO_OT_FRAME_WIDTH 0x30 /* M9MO_CATEGORY_FD: 0x09 */ #define M9MO_FD_CTL 0x00 #define M9MO_FD_SIZE 0x01 #define M9MO_FD_MAX 0x02 #define M9MO_FD_RED_EYE 0x55 +#define M9MO_FD_RED_DET_STATUS 0x56 #define M9MO_FD_BLINK_FRAMENO 0x59 #define M9MO_FD_BLINK_LEVEL_1 0x5A #define M9MO_FD_BLINK_LEVEL_2 0x5B @@ -334,12 +503,14 @@ struct m9mo_state { /* M9MO_CATEGORY_LENS: 0x0A */ #define M9MO_LENS_AF_INITIAL 0x00 -#define M9MO_LENS_AF_MODE 0x01 +#define M9MO_LENS_AF_LENS_CLOSE 0x01 #define M9MO_LENS_AF_ZOOM_CTRL 0x02 #define M9MO_LENS_AF_START_STOP 0x03 -#define M9MO_LENS_AF_STATUS 0x03 #define M9MO_LENS_AF_IRIS_STEP 0x05 #define M9MO_LENS_AF_ZOOM_LEVEL 0x06 +#define M9MO_LENS_AF_SCAN_RANGE 0x07 +#define M9MO_LENS_AF_MODE 0x08 +#define M9MO_LENS_AF_WINDOW_MODE 0x09 #define M9MO_LENS_AF_BACKLASH_ADJ 0x0A #define M9MO_LENS_AF_FOCUS_ADJ 0x0B #define M9MO_LENS_AF_TILT_ADJ 0x0C @@ -348,9 +519,18 @@ struct m9mo_state { #define M9MO_LENS_AF_ZOOM_ADJ 0x0F #define M9MO_LENS_AF_ADJ_TEMP_VALUE 0x0C #define M9MO_LENS_AF_ALGORITHM 0x0D +#define M9MO_LENS_ZOOM_LEVEL_INFO 0x10 +#define M9MO_LENS_AF_LED 0x1C #define M9MO_LENS_AF_CAL 0x1D +#define M9MO_LENS_AF_RESULT 0x20 +#define M9MO_LENS_ZOOM_SET_INFO 0x22 +#define M9MO_LENS_ZOOM_SPEED 0x25 +#define M9MO_LENS_ZOOM_STATUS 0x26 +#define M9MO_LENS_LENS_STATUS 0x28 +#define M9MO_LENS_ZOOM_LENS_STATUS 0x2A #define M9MO_LENS_AF_TOUCH_POSX 0x30 #define M9MO_LENS_AF_TOUCH_POSY 0x32 +#define M9MO_LENS_AF_VERSION 0x60 /* M9MO_CATEGORY_CAPPARM: 0x0B */ #define M9MO_CAPPARM_YUVOUT_MAIN 0x00 @@ -364,9 +544,13 @@ struct m9mo_state { #define M9MO_CAPPARM_JPEG_RATIO 0x17 #define M9MO_CAPPARM_MCC_MODE 0x1D #define M9MO_CAPPARM_STROBE_EN 0x22 +#define M9MO_CAPPARM_STROBE_CHARGE 0x27 +#define M9MO_CAPPARM_STROBE_EVC 0x28 +#define M9MO_CAPPARM_STROBE_UP_DOWN 0x29 #define M9MO_CAPPARM_WDR_EN 0x2C -#define M9MO_CAPPARM_JPEG_RATIO_OFS 0x34 +#define M9MO_CAPPARM_JPEG_RATIO_OFS 0x1B #define M9MO_CAPPARM_THUMB_JPEG_MAX 0x3C +#define M9MO_CAPPARM_STROBE_BATT_INFO 0x3F #define M9MO_CAPPARM_AFB_CAP_EN 0x53 /* M9MO_CATEGORY_CAPCTRL: 0x0C */ @@ -376,6 +560,7 @@ struct m9mo_state { #define M9MO_CAPCTRL_START_DUALCAP 0x05 #define M9MO_CAPCTRL_FRM_SEL 0x06 #define M9MO_CAPCTRL_FRM_PRV_SEL 0x07 +#define M9MO_CAPCTRL_FRM_THUMB_SEL 0x08 #define M9MO_CAPCTRL_TRANSFER 0x09 #define M9MO_CAPCTRL_IMG_SIZE 0x0D #define M9MO_CAPCTRL_THUMB_SIZE 0x11 @@ -388,6 +573,7 @@ struct m9mo_state { #define M9MO_CAP_MODE_ADDPIXEL_CAPTURE (0x08) #define M9MO_CAP_MODE_PANORAMA_CAPTURE (0x0B) #define M9MO_CAP_MODE_BLINK_CAPTURE (0x0C) +#define M9MO_CAP_MODE_RAW (0x0D) /* M9MO_CATEGORY_ADJST: 0x0E */ #define M9MO_ADJST_SHUTTER_MODE 0x33 @@ -426,6 +612,8 @@ struct m9mo_state { #define M9MO_INT_MODE (1 << 8) #define M9MO_INT_ATSCENE (1 << 7) #define M9MO_INT_ATSCENE_UPDATE (1 << 6) +#define M9MO_INT_AF_STATUS (1 << 5) +#define M9MO_INT_OIS_SET (1 << 4) #define M9MO_INT_OIS_INIT (1 << 3) #define M9MO_INT_STNW_DETECT (1 << 2) #define M9MO_INT_SCENARIO_FIN (1 << 1) |