From c92348064f2c20a8707be031e629130d2f83168c Mon Sep 17 00:00:00 2001 From: Suresh Vankadara Date: Mon, 22 Jun 2020 15:23:00 +0530 Subject: [PATCH] msm: camera: common: Update holi camera workq wrapper Update OPE and TFE drivers to use new camera workq wrapper functions. CRs-Fixed: 2716498 Change-Id: I05ecefb191a544c2953ac7e71a7c9a95d1f1fb10 Signed-off-by: Suresh Vankadara --- drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.c | 8 ++++++- drivers/cam_ope/ope_hw_mgr/cam_ope_hw_mgr.c | 23 ++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.c b/drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.c index 6425088a462c..a28b9773dfd2 100644 --- a/drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.c +++ b/drivers/cam_isp/isp_hw_mgr/cam_tfe_hw_mgr.c @@ -5323,6 +5323,11 @@ err: return -ENOMEM; } +static void cam_req_mgr_process_tfe_worker(struct work_struct *w) +{ + cam_req_mgr_process_workq(w); +} + int cam_tfe_hw_mgr_init(struct cam_hw_mgr_intf *hw_mgr_intf, int *iommu_hdl) { int rc = -EFAULT; @@ -5477,7 +5482,8 @@ int cam_tfe_hw_mgr_init(struct cam_hw_mgr_intf *hw_mgr_intf, int *iommu_hdl) /* Create Worker for tfe_hw_mgr with 10 tasks */ rc = cam_req_mgr_workq_create("cam_tfe_worker", 10, - &g_tfe_hw_mgr.workq, CRM_WORKQ_USAGE_NON_IRQ, 0); + &g_tfe_hw_mgr.workq, CRM_WORKQ_USAGE_NON_IRQ, 0, + cam_req_mgr_process_tfe_worker); if (rc < 0) { CAM_ERR(CAM_ISP, "Unable to create worker"); goto end; diff --git a/drivers/cam_ope/ope_hw_mgr/cam_ope_hw_mgr.c b/drivers/cam_ope/ope_hw_mgr/cam_ope_hw_mgr.c index 5b459dd4f366..6016652717c5 100644 --- a/drivers/cam_ope/ope_hw_mgr/cam_ope_hw_mgr.c +++ b/drivers/cam_ope/ope_hw_mgr/cam_ope_hw_mgr.c @@ -3573,6 +3573,21 @@ compat_hw_name_failed: return rc; } +static void cam_req_mgr_process_ope_command_queue(struct work_struct *w) +{ + cam_req_mgr_process_workq(w); +} + +static void cam_req_mgr_process_ope_msg_queue(struct work_struct *w) +{ + cam_req_mgr_process_workq(w); +} + +static void cam_req_mgr_process_ope_timer_queue(struct work_struct *w) +{ + cam_req_mgr_process_workq(w); +} + static int cam_ope_mgr_create_wq(void) { @@ -3581,21 +3596,23 @@ static int cam_ope_mgr_create_wq(void) rc = cam_req_mgr_workq_create("ope_command_queue", OPE_WORKQ_NUM_TASK, &ope_hw_mgr->cmd_work, CRM_WORKQ_USAGE_NON_IRQ, - 0); + 0, cam_req_mgr_process_ope_command_queue); if (rc) { CAM_ERR(CAM_OPE, "unable to create a command worker"); goto cmd_work_failed; } rc = cam_req_mgr_workq_create("ope_message_queue", OPE_WORKQ_NUM_TASK, - &ope_hw_mgr->msg_work, CRM_WORKQ_USAGE_IRQ, 0); + &ope_hw_mgr->msg_work, CRM_WORKQ_USAGE_IRQ, 0, + cam_req_mgr_process_ope_msg_queue); if (rc) { CAM_ERR(CAM_OPE, "unable to create a message worker"); goto msg_work_failed; } rc = cam_req_mgr_workq_create("ope_timer_queue", OPE_WORKQ_NUM_TASK, - &ope_hw_mgr->timer_work, CRM_WORKQ_USAGE_IRQ, 0); + &ope_hw_mgr->timer_work, CRM_WORKQ_USAGE_IRQ, 0, + cam_req_mgr_process_ope_timer_queue); if (rc) { CAM_ERR(CAM_OPE, "unable to create a timer worker"); goto timer_work_failed;