Add auto-exposure/auto-white balance lock support to soc2030 image
sensor.
Bug: 4980604
Change-Id: I1be07a23573b70eeddd9ecb2370605713aea3d03
diff --git a/libc/kernel/common/media/soc2030.h b/libc/kernel/common/media/soc2030.h
index ad0ddfc..850ab13 100644
--- a/libc/kernel/common/media/soc2030.h
+++ b/libc/kernel/common/media/soc2030.h
@@ -12,7 +12,7 @@
#ifndef __SOC2030_H__
#define __SOC2030_H__
-#include <linux/ioctl.h>
+#include <linux/ioctl.h>
#define SOC2030_IOCTL_SET_MODE _IOWR('o', 1, struct soc2030_mode)
#define SOC2030_IOCTL_GET_STATUS _IOC(_IOC_READ, 'o', 2, 10)
@@ -22,10 +22,11 @@
#define SOC2030_IOCTL_SET_EFFECT _IOWR('o', 6, unsigned int)
#define SOC2030_IOCTL_SET_WHITEBALANCE _IOWR('o', 7, unsigned int)
#define SOC2030_IOCTL_SET_EXP_COMP _IOWR('o', 8, int)
+#define SOC2030_IOCTL_SET_LOCK _IOWR('o', 9, struct soc2030_lock)
#define SOC2030_POLL_WAITMS 50
#define SOC2030_MAX_RETRIES 3
-#define SOC2030_POLL_RETRIES 5
+#define SOC2030_POLL_RETRIES 7
#define SOC2030_MAX_PRIVATE_SIZE 1024
#define SOC2030_MAX_NUM_MODES 6
@@ -45,8 +46,21 @@
WRITE_VAR_DATA,
POLL_VAR_DATA,
DELAY_MS,
+ WRITE_REG_VAR1,
+ WRITE_REG_VAR2,
+ WRITE_REG_VAR3,
+ WRITE_REG_VAR4,
+ READ_REG_VAR1,
+ READ_REG_VAR2,
+ READ_REG_VAR3,
+ READ_REG_VAR4,
};
+#define REG_VAR1 (READ_REG_VAR1 - READ_REG_VAR1)
+#define REG_VAR2 (READ_REG_VAR2 - READ_REG_VAR1)
+#define REG_VAR3 (READ_REG_VAR3 - READ_REG_VAR1)
+#define REG_VAR4 (READ_REG_VAR4 - READ_REG_VAR1)
+
enum {
EFFECT_NONE,
EFFECT_BW,
@@ -74,6 +88,14 @@
__u16 val;
};
+struct soc2030_lock {
+ __u8 aelock;
+ __u8 aerelock;
+ __u8 awblock;
+ __u8 awbrelock;
+ __u8 previewactive;
+};
+
struct soc2030_mode {
int xres;
int yres;
@@ -82,5 +104,3 @@
};
#endif
-
-