From b4391df0be1d6b158e2cfd59f2f685962eac6d06 Mon Sep 17 00:00:00 2001 From: Shankar Ravi Date: Tue, 18 Apr 2017 18:47:46 +0530 Subject: [PATCH] msm: camera: Fix for NOC error in CCI During stability runs, CCI dump registers are accessed after the cci release call causing NOC errors.Enable dump registers if necessary Change-Id: Ib80bed8de0bdb68dc0ad72d7be8bd5e973ed7f57 Signed-off-by: Shankar Ravi --- .../media/platform/msm/camera_v2/sensor/cci/msm_cci.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c index b067c4916341..2df05752fbcd 100644 --- a/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c +++ b/drivers/media/platform/msm/camera_v2/sensor/cci/msm_cci.c @@ -47,6 +47,8 @@ #define CCI_DBG(fmt, args...) pr_debug(fmt, ##args) #endif +#define CCI_DUMP_REG 0 + /* Max bytes that can be read per CCI read transaction */ #define CCI_READ_MAX 12 #define CCI_I2C_READ_MAX_RETRIES 3 @@ -291,6 +293,9 @@ static uint32_t msm_cci_wait(struct cci_device *cci_dev, __func__, __LINE__); if (rc <= 0) { + if (CCI_DUMP_REG) + msm_cci_dump_registers(cci_dev, master, queue); + pr_err("%s: %d wait for queue: %d\n", __func__, __LINE__, queue); if (rc == 0) @@ -889,7 +894,9 @@ static int32_t msm_cci_i2c_read(struct v4l2_subdev *sd, rc = wait_for_completion_timeout(&cci_dev-> cci_master_info[master].reset_complete, CCI_TIMEOUT); if (rc <= 0) { - msm_cci_dump_registers(cci_dev, master, queue); + if (CCI_DUMP_REG) + msm_cci_dump_registers(cci_dev, master, queue); + if (rc == 0) rc = -ETIMEDOUT; pr_err("%s: %d wait_for_completion_timeout rc = %d\n",