aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/s5k5ccgx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/s5k5ccgx.h')
-rw-r--r--drivers/media/video/s5k5ccgx.h38
1 files changed, 22 insertions, 16 deletions
diff --git a/drivers/media/video/s5k5ccgx.h b/drivers/media/video/s5k5ccgx.h
index 09657b7..a8ac24c 100644
--- a/drivers/media/video/s5k5ccgx.h
+++ b/drivers/media/video/s5k5ccgx.h
@@ -245,6 +245,15 @@ struct s5k5ccgx_framesize {
#define FRM_RATIO(framesize) \
(((framesize)->width) * 10 / ((framesize)->height))
+struct s5k5ccgx_interval {
+ struct timeval curr_time;
+ struct timeval before_time;
+};
+
+#define GET_ELAPSED_TIME(cur, before) \
+ (((cur).tv_sec - (before).tv_sec) * USEC_PER_SEC \
+ + ((cur).tv_usec - (before).tv_usec))
+
struct s5k5ccgx_fps {
u32 index;
u32 fps;
@@ -312,6 +321,8 @@ struct s5k5ccgx_gps_info {
};
struct s5k5ccgx_focus {
+ struct s5k5ccgx_interval win_stable;
+
enum v4l2_focusmode mode;
enum af_result_status status;
enum preflash_status preflash;
@@ -323,7 +334,8 @@ struct s5k5ccgx_focus {
u32 ae_lock:1;
u32 awb_lock:1;
u32 touch:1;
- u32 af_cancel:1;
+ u32 reset_done:1;
+ u32 cancel:1;
};
struct s5k5ccgx_exif {
@@ -337,8 +349,8 @@ struct s5k5ccgx_exif {
/* EXIF - flash filed */
#define EXIF_FLASH_FIRED (0x01)
-#define EXIF_FLASH_MODE_FIRING (0x01)
-#define EXIF_FLASH_MODE_SUPPRESSION (0x01 << 1)
+#define EXIF_FLASH_MODE_FIRING (0x01 << 3)
+#define EXIF_FLASH_MODE_SUPPRESSION (0x02 << 3)
#define EXIF_FLASH_MODE_AUTO (0x03 << 3)
struct s5k5ccgx_regset {
@@ -346,15 +358,6 @@ struct s5k5ccgx_regset {
u8 *data;
};
-struct s5k5ccgx_stream_time {
- struct timeval curr_time;
- struct timeval before_time;
-};
-
-#define GET_ELAPSED_TIME(cur, before) \
- (((cur).tv_sec - (before).tv_sec) * USEC_PER_SEC \
- + ((cur).tv_usec - (before).tv_usec))
-
#ifdef CONFIG_LOAD_FILE
#define DEBUG_WRITE_REGS
struct s5k5ccgx_regset_table {
@@ -476,7 +479,7 @@ struct s5k5ccgx_state {
#if !defined(FEATURE_YUV_CAPTURE)
struct s5k5ccgx_jpeg_param jpeg;
#endif
- struct s5k5ccgx_stream_time stream_time;
+ struct s5k5ccgx_interval stream_time;
const struct s5k5ccgx_regs *regs;
struct mutex ctrl_lock;
struct mutex af_lock;
@@ -555,9 +558,12 @@ static inline void debug_msleep(struct v4l2_subdev *sd, u32 msecs)
#define FLASH_LOW_LIGHT_LEVEL 0x4A
#endif /* CONFIG_VIDEO_S5K5CCGX_P2 */
-#define FIRST_AF_SEARCH_COUNT 80
-#define SECOND_AF_SEARCH_COUNT 80
-#define AE_STABLE_SEARCH_COUNT 7 /* 4->7. but ae-unstable still occurs. */
+#define FIRST_AF_SEARCH_COUNT 220
+#define SECOND_AF_SEARCH_COUNT 220
+#define AE_STABLE_SEARCH_COUNT 22
+
+#define AF_SEARCH_DELAY 33
+#define AE_STABLE_SEARCH_DELAY 33
/* Sensor AF first,second window size.
* we use constant values intead of reading sensor register */