From 16b4f6747c2faddcf36ac00a703a4cf2f9eed21b Mon Sep 17 00:00:00 2001 From: E V Ravi Date: Fri, 16 Nov 2018 23:54:27 +0530 Subject: [PATCH] msm: ais: Update early camera with new apis Early domain core driver provides apis to communicate with LK instead of using scratch registers Change-Id: If312307d0b2eec7a40faf8575a7ad12451408c7c Signed-off-by: E V Ravi --- .../media/platform/msm/ais/isp/msm_isp_util.c | 3 +++ .../msm/ais/sensor/cci/msm_early_cam.c | 21 ++++++------------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/drivers/media/platform/msm/ais/isp/msm_isp_util.c b/drivers/media/platform/msm/ais/isp/msm_isp_util.c index 83b3dfe68932..8753592d3dbf 100644 --- a/drivers/media/platform/msm/ais/isp/msm_isp_util.c +++ b/drivers/media/platform/msm/ais/isp/msm_isp_util.c @@ -24,6 +24,7 @@ #define CREATE_TRACE_POINTS #include "trace/events/msm_cam.h" #include "sensor/cci/msm_early_cam.h" +#include #define MAX_ISP_V4l2_EVENTS 100 #define MAX_ISP_REG_LIST 100 @@ -2292,6 +2293,8 @@ int msm_isp_open_node(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) vfe_dev->isp_raw2_debug = 0; /* Postpone hardware changes until early camera is complete */ + /* Signal LK early camera that Kernel started running AIS */ + request_early_service_shutdown(EARLY_CAMERA); msm_early_camera_wait(); if (vfe_dev->hw_info->vfe_ops.core_ops.init_hw(vfe_dev) < 0) { diff --git a/drivers/media/platform/msm/ais/sensor/cci/msm_early_cam.c b/drivers/media/platform/msm/ais/sensor/cci/msm_early_cam.c index 1329511440c4..7329dd9ddb27 100644 --- a/drivers/media/platform/msm/ais/sensor/cci/msm_early_cam.c +++ b/drivers/media/platform/msm/ais/sensor/cci/msm_early_cam.c @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include "msm_sd.h" #include "msm_early_cam.h" #include "msm_cam_cci_hwreg.h" @@ -39,12 +39,6 @@ static struct platform_driver msm_early_camera_driver; static struct early_cam_device *new_early_cam_dev; -#define MMSS_A_VFE_0_BASE 0x00A10000 -#define MMSS_A_VFE_0_SIZE 0x1000 -#define EARLY_CAMERA_SIGNAL_DONE 0xa5a5a5a5 -#define EARLY_CAMERA_SIGNAL_DISABLED 0 -#define MMSS_A_VFE_0_SPARE 0xC84 - int msm_early_cam_disable_clocks(void) { int rc = 0; @@ -263,14 +257,11 @@ int msm_ais_disable_clocks(void) void msm_early_camera_wait(void) { - u32 val = 0; - void __iomem *base; - - base = ioremap(MMSS_A_VFE_0_BASE, MMSS_A_VFE_0_SIZE); - readl_poll_timeout(base + MMSS_A_VFE_0_SPARE, val, - ((val == EARLY_CAMERA_SIGNAL_DONE) - || (val == EARLY_CAMERA_SIGNAL_DISABLED)), 0, 0); - iounmap(base); + while (get_early_service_status(EARLY_CAMERA)) { + CDBG("%s: wait for signal of early camera from LK", + __func__); + msleep(500); + } } static int msm_early_cam_probe(struct platform_device *pdev)