From b630768467b2ea046f1fe8db6c73e0c9696a92b7 Mon Sep 17 00:00:00 2001 From: Jigarkumar Zala Date: Mon, 29 Jul 2019 11:59:44 -0700 Subject: [PATCH] msm: camera: icp: Add support for semi real time device types Add support for IPE/BPS semi real time device types. Change-Id: I1d9974eb796ce1723205072651d53ecb84023e88 Signed-off-by: Karthik Anantha Ram Signed-off-by: Vishalsingh Hajeri Signed-off-by: Jigarkumar Zala --- .../icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c b/drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c index 9cb19fae68c9..57a88f5a3070 100644 --- a/drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c +++ b/drivers/cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.c @@ -5012,10 +5012,31 @@ static int cam_icp_get_acquire_info(struct cam_icp_hw_mgr *hw_mgr, return 0; } +static uint32_t cam_icp_unify_dev_type( + uint32_t dev_type) +{ + switch (dev_type) { + case CAM_ICP_RES_TYPE_BPS: + return CAM_ICP_RES_TYPE_BPS; + case CAM_ICP_RES_TYPE_BPS_RT: + return CAM_ICP_RES_TYPE_BPS; + case CAM_ICP_RES_TYPE_BPS_SEMI_RT: + return CAM_ICP_RES_TYPE_BPS; + case CAM_ICP_RES_TYPE_IPE: + return CAM_ICP_RES_TYPE_IPE; + case CAM_ICP_RES_TYPE_IPE_RT: + return CAM_ICP_RES_TYPE_IPE; + case CAM_ICP_RES_TYPE_IPE_SEMI_RT: + return CAM_ICP_RES_TYPE_IPE; + default: + return CAM_ICP_RES_TYPE_MAX; + } +} + static int cam_icp_mgr_acquire_hw(void *hw_mgr_priv, void *acquire_hw_args) { int rc = 0, bitmap_size = 0; - uint32_t ctx_id = 0; + uint32_t ctx_id = 0, dev_type; uint64_t io_buf_addr; size_t io_buf_size; struct cam_icp_hw_mgr *hw_mgr = hw_mgr_priv; @@ -5108,6 +5129,10 @@ static int cam_icp_mgr_acquire_hw(void *hw_mgr_priv, void *acquire_hw_args) goto create_handle_failed; } + CAM_DBG(CAM_ICP, + "created stream handle for dev_type %u", + icp_dev_acquire_info->dev_type); + cmd_mem_region.num_regions = 1; cmd_mem_region.map_info_array[0].mem_handle = icp_dev_acquire_info->io_config_cmd_handle; @@ -5167,10 +5192,12 @@ static int cam_icp_mgr_acquire_hw(void *hw_mgr_priv, void *acquire_hw_args) /* Start context timer*/ cam_icp_ctx_timer_start(ctx_data); hw_mgr->ctxt_cnt++; + dev_type = cam_icp_unify_dev_type(icp_dev_acquire_info->dev_type); + icp_dev_acquire_info->dev_type = dev_type; mutex_unlock(&hw_mgr->hw_mgr_mutex); - CAM_DBG(CAM_ICP, "Acquire Done for ctx_id %u dev name %s dev type %d", - ctx_data->ctx_id, cam_icp_dev_type_to_name( - icp_dev_acquire_info->dev_type), + + CAM_DBG(CAM_ICP, "Acquire Done for ctx_id %u dev type %d", + ctx_data->ctx_id, icp_dev_acquire_info->dev_type); return 0;