summaryrefslogtreecommitdiff
path: root/drivers/media/platform/msm/vidc/msm_vidc_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/msm/vidc/msm_vidc_common.c')
-rw-r--r--drivers/media/platform/msm/vidc/msm_vidc_common.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/vidc/msm_vidc_common.c b/drivers/media/platform/msm/vidc/msm_vidc_common.c
index 8b85692f28d3..d30f4c847df2 100644
--- a/drivers/media/platform/msm/vidc/msm_vidc_common.c
+++ b/drivers/media/platform/msm/vidc/msm_vidc_common.c
@@ -2026,6 +2026,33 @@ exit:
return rc;
}
+int msm_comm_suspend(int core_id)
+{
+ struct hfi_device *hdev;
+ struct msm_vidc_core *core;
+ int rc = 0;
+
+ core = get_vidc_core(core_id);
+ if (!core) {
+ dprintk(VIDC_ERR,
+ "%s: Failed to find core for core_id = %d\n",
+ __func__, core_id);
+ return -EINVAL;
+ }
+
+ hdev = (struct hfi_device *)core->device;
+ if (!hdev) {
+ dprintk(VIDC_ERR, "%s Invalid device handle\n", __func__);
+ return -EINVAL;
+ }
+
+ rc = call_hfi_op(hdev, suspend, hdev->hfi_device_data);
+ if (rc)
+ dprintk(VIDC_WARN, "Failed to suspend\n");
+
+ return rc;
+}
+
static int get_flipped_state(int present_state,
int desired_state)
{