mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-26 06:33:19 -04:00
camera: ois: read ois status in vsync thread
Read ois status and mode in vsync thread. If ois is not enabled and not in move mode, skip vsync handle. Change-Id: I2ddbf839b089da75550aef03b63fe136cbd4bc43 Signed-off-by: liuwang2 <liuwang2@lenovo.com> Reviewed-on: https://gerrit.mot.com/2175243 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: XiaoFeng Wang <wangxf32@lenovo.com> Reviewed-by: Long Cheng <chengl1@motorola.com> Reviewed-by: Zhichao Chen <chenzc2@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
ca3c46dadd
commit
42b21db1fb
2 changed files with 33 additions and 1 deletions
|
|
@ -300,6 +300,7 @@ static irqreturn_t cam_ois_vsync_irq_thread(int irq, void *data)
|
|||
uint64_t qtime_ns;
|
||||
uint8_t *read_buff;
|
||||
uint32_t k, read_len;
|
||||
uint32_t mode_val = 0xFFFF, enable_val = 0xFFFF;
|
||||
|
||||
if (!o_ctrl) {
|
||||
CAM_ERR(CAM_OIS, "Invalid Args");
|
||||
|
|
@ -316,9 +317,38 @@ static irqreturn_t cam_ois_vsync_irq_thread(int irq, void *data)
|
|||
goto release_mutex;
|
||||
}
|
||||
|
||||
rc = camera_io_dev_read(
|
||||
&o_ctrl->io_master_info,
|
||||
MODE_ADDR,
|
||||
&mode_val,
|
||||
CAMERA_SENSOR_I2C_TYPE_WORD,
|
||||
CAMERA_SENSOR_I2C_TYPE_WORD);
|
||||
if (rc < 0) {
|
||||
CAM_ERR(CAM_OIS, "failed to read OIS 0x7014 reg rc: %d", rc);
|
||||
goto release_mutex;
|
||||
}
|
||||
|
||||
rc = camera_io_dev_read(
|
||||
&o_ctrl->io_master_info,
|
||||
ENABLE_ADDR,
|
||||
&enable_val,
|
||||
CAMERA_SENSOR_I2C_TYPE_WORD,
|
||||
CAMERA_SENSOR_I2C_TYPE_WORD);
|
||||
if (rc < 0) {
|
||||
CAM_ERR(CAM_OIS, "failed to read OIS 0x7015 reg rc: %d", rc);
|
||||
goto release_mutex;
|
||||
}
|
||||
|
||||
CAM_DBG(CAM_OIS, "mode_val = 0x%02x, enable_val = 0x%02x", mode_val, enable_val);
|
||||
|
||||
if (mode_val != 0 || enable_val != 0) {
|
||||
CAM_DBG(CAM_OIS, "ois is not in move mode, skip this irq");
|
||||
goto release_mutex;
|
||||
}
|
||||
|
||||
rc = cam_sensor_util_get_current_qtimer_ns(&qtime_ns);
|
||||
if (rc < 0) {
|
||||
CAM_ERR(CAM_OIS, "failed to get qtimer rc:%d");
|
||||
CAM_ERR(CAM_OIS, "failed to get qtimer rc:%d", rc);
|
||||
goto release_mutex;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@
|
|||
#define DEFINE_MSM_MUTEX(mutexname) \
|
||||
static struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
|
||||
|
||||
#define MODE_ADDR 0x7014
|
||||
#define ENABLE_ADDR 0x7015
|
||||
#define PACKET_ADDR 0x70B0
|
||||
#define PACKET_BYTE 62
|
||||
#define MAX_PACKET 5
|
||||
|
|
|
|||
Loading…
Reference in a new issue