summaryrefslogtreecommitdiff
path: root/include/media
diff options
context:
space:
mode:
authorGary Fitzer <gfitzer@nvidia.com>2014-02-13 12:57:51 -0800
committerBharat Nihalani <bnihalani@nvidia.com>2014-03-05 00:18:15 -0800
commita85e28eade8ccf36c75f9b81cf9edc8223d3f167 (patch)
treec6c1a551323e8aa6276c716994043aecaf5e5f04 /include/media
parentfa0784a13a3e08f64a50513b411380f5d43cd349 (diff)
media: tegra: i2c frame interrupt callback
Switch focuser position writes to a synchronize mechanism with isp frame triggers to improve auto focusing algorithms. Bug 1441127. Change-Id: I323e997aed6412b5b4719a16727d1d14c9d29adc Signed-off-by: Gary Fitzer <gfitzer@nvidia.com> Reviewed-on: http://git-master/r/374485 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'include/media')
-rw-r--r--include/media/camera.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/media/camera.h b/include/media/camera.h
index 6727c8e803e8..1ae0e06227eb 100644
--- a/include/media/camera.h
+++ b/include/media/camera.h
@@ -188,6 +188,7 @@ struct cam_device_layout {
#define NUM_OF_SEQSTACK 16
#define SIZEOF_I2C_BUF 32
+#define CAMERA_REGCACHE_MAX (128)
struct camera_device;
@@ -261,8 +262,24 @@ struct camera_chip {
struct cam_update *upd, int num);
};
+struct camera_sync_dev {
+ char name[CAMERA_MAX_NAME_LENGTH];
+ struct regmap *regmap;
+ struct camera_reg reg[CAMERA_REGCACHE_MAX];
+ u32 num_used;
+ struct list_head list;
+};
+
extern int camera_chip_add(struct camera_chip *chip);
+int camera_dev_sync_init(void);
+void camera_dev_sync_cb(void *stub);
+extern int camera_dev_sync_clear(struct camera_sync_dev *csyncdev);
+extern int camera_dev_sync_wr_add(
+ struct camera_sync_dev *csyncdev, u32 offset, u32 val);
+extern int camera_dev_add_regmap(
+ struct camera_sync_dev **csyncdev, u8 *name, struct regmap *regmap);
+
#ifdef CAMERA_DEVICE_INTERNAL
struct camera_info {