|
@@ -3573,6 +3573,21 @@ compat_hw_name_failed:
|
|
return rc;
|
|
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)
|
|
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,
|
|
rc = cam_req_mgr_workq_create("ope_command_queue", OPE_WORKQ_NUM_TASK,
|
|
&ope_hw_mgr->cmd_work, CRM_WORKQ_USAGE_NON_IRQ,
|
|
&ope_hw_mgr->cmd_work, CRM_WORKQ_USAGE_NON_IRQ,
|
|
- 0);
|
|
|
|
|
|
+ 0, cam_req_mgr_process_ope_command_queue);
|
|
if (rc) {
|
|
if (rc) {
|
|
CAM_ERR(CAM_OPE, "unable to create a command worker");
|
|
CAM_ERR(CAM_OPE, "unable to create a command worker");
|
|
goto cmd_work_failed;
|
|
goto cmd_work_failed;
|
|
}
|
|
}
|
|
|
|
|
|
rc = cam_req_mgr_workq_create("ope_message_queue", OPE_WORKQ_NUM_TASK,
|
|
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) {
|
|
if (rc) {
|
|
CAM_ERR(CAM_OPE, "unable to create a message worker");
|
|
CAM_ERR(CAM_OPE, "unable to create a message worker");
|
|
goto msg_work_failed;
|
|
goto msg_work_failed;
|
|
}
|
|
}
|
|
|
|
|
|
rc = cam_req_mgr_workq_create("ope_timer_queue", OPE_WORKQ_NUM_TASK,
|
|
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) {
|
|
if (rc) {
|
|
CAM_ERR(CAM_OPE, "unable to create a timer worker");
|
|
CAM_ERR(CAM_OPE, "unable to create a timer worker");
|
|
goto timer_work_failed;
|
|
goto timer_work_failed;
|