From 9943af257a1d711264e0777f19f2f464b8b69993 Mon Sep 17 00:00:00 2001 From: Anil Kumar Kanakanti Date: Thu, 24 Sep 2020 23:59:10 +0530 Subject: [PATCH] msm: camera: cci: Add CCI Global reset during CCI HW init During first CCI HW initialization, CCI HW global reset has to be called. CRs-Fixed: 2782553 Change-Id: Ifc02f512859932636c79b0bfed1f60e7c0626cee Signed-off-by: Anil Kumar Kanakanti --- drivers/cam_sensor_module/cam_cci/cam_cci_soc.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/cam_sensor_module/cam_cci/cam_cci_soc.c b/drivers/cam_sensor_module/cam_cci/cam_cci_soc.c index 3029839587..fde91ad134 100644 --- a/drivers/cam_sensor_module/cam_cci/cam_cci_soc.c +++ b/drivers/cam_sensor_module/cam_cci/cam_cci_soc.c @@ -39,9 +39,16 @@ static int cam_cci_init_master(struct cci_device *cci_dev, /* Set reset pending flag to true */ cci_dev->cci_master_info[master].reset_pending = true; - cam_io_w_mb((master == MASTER_0) ? - CCI_M0_RESET_RMSK : CCI_M1_RESET_RMSK, - base + CCI_RESET_CMD_ADDR); + cci_dev->cci_master_info[master].status = 0; + if (cci_dev->ref_count == 1) { + cam_io_w_mb(CCI_RESET_CMD_RMSK, + base + CCI_RESET_CMD_ADDR); + cam_io_w_mb(0x1, base + CCI_RESET_CMD_ADDR); + } else { + cam_io_w_mb((master == MASTER_0) ? + CCI_M0_RESET_RMSK : CCI_M1_RESET_RMSK, + base + CCI_RESET_CMD_ADDR); + } if (!wait_for_completion_timeout( &cci_dev->cci_master_info[master].reset_complete, CCI_TIMEOUT)) {