diff options
| author | E V Ravi <evenka@codeaurora.org> | 2018-11-16 23:54:27 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-12-12 20:52:54 -0800 |
| commit | 16b4f6747c2faddcf36ac00a703a4cf2f9eed21b (patch) | |
| tree | 328a7a0fdf91bc759bd30541159194554617dc16 | |
| parent | e46bc1b058b0d491c019e22c9708e7cfd068269d (diff) | |
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 <evenka@codeaurora.org>
| -rw-r--r-- | drivers/media/platform/msm/ais/isp/msm_isp_util.c | 3 | ||||
| -rw-r--r-- | drivers/media/platform/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 <soc/qcom/early_domain.h> #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 <linux/of.h> #include <linux/of_gpio.h> #include <linux/of_platform.h> -#include <linux/iopoll.h> +#include <soc/qcom/early_domain.h> #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) |
