diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2018-09-13 05:02:41 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-09-13 05:02:43 -0700 |
commit | 3bcf35f91e68e33cc706e1e3e148afe9f0ce5a5a (patch) | |
tree | 5dc7ca86a9944d31f0cae18a6388b538e87b04d8 | |
parent | f22a43dcbb8bc955091af893c4b241eac25d60ec (diff) | |
parent | d688857dba287d5dee2603e7e34d8a1387ade1d4 (diff) |
Merge "ARM: qcom: disable power collapse when camera is working" into LE.UM.2.3.1.r1.3LE.UM.2.3.1.r1-02900-8x09.0
-rw-r--r-- | drivers/media/platform/msm/camera_v2/camera/camera.c | 5 | ||||
-rw-r--r-- | drivers/media/platform/msm/camera_v2/msm.c | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/drivers/media/platform/msm/camera_v2/camera/camera.c b/drivers/media/platform/msm/camera_v2/camera/camera.c index 7af8a690ac53..1da62e23e098 100644 --- a/drivers/media/platform/msm/camera_v2/camera/camera.c +++ b/drivers/media/platform/msm/camera_v2/camera/camera.c @@ -688,8 +688,6 @@ static int camera_v4l2_open(struct file *filep) if (rc < 0) goto post_fail; } - /* Enable power collapse latency */ - msm_pm_qos_update_request(CAMERA_ENABLE_PC_LATENCY); } else { rc = msm_create_command_ack_q(pvdev->vdev->num, find_first_zero_bit((const unsigned long *)&opn_idx, @@ -713,6 +711,7 @@ post_fail: command_ack_q_fail: msm_destroy_session(pvdev->vdev->num); session_fail: + msm_pm_qos_update_request(CAMERA_ENABLE_PC_LATENCY); pm_relax(&pvdev->vdev->dev); stream_fail: camera_v4l2_vb2_q_release(filep); @@ -786,6 +785,8 @@ static int camera_v4l2_close(struct file *filep) camera_v4l2_vb2_q_release(filep); msm_destroy_session(pvdev->vdev->num); + /* Enable power collapse latency */ + msm_pm_qos_update_request(CAMERA_ENABLE_PC_LATENCY); pm_relax(&pvdev->vdev->dev); } else { msm_delete_command_ack_q(pvdev->vdev->num, diff --git a/drivers/media/platform/msm/camera_v2/msm.c b/drivers/media/platform/msm/camera_v2/msm.c index d52d8bc4b96a..9b49b68702dd 100644 --- a/drivers/media/platform/msm/camera_v2/msm.c +++ b/drivers/media/platform/msm/camera_v2/msm.c @@ -238,8 +238,13 @@ static void msm_pm_qos_remove_request(void) void msm_pm_qos_update_request(int val) { - pr_info("%s: update request %d", __func__, val); - pm_qos_update_request(&msm_v4l2_pm_qos_request, val); + /* update just before creating the first session, + * or after destroying the last session. + */ + if (msm_session_q->len == 0) { + pr_info("%s: update request %d", __func__, val); + pm_qos_update_request(&msm_v4l2_pm_qos_request, val); + } } struct msm_session *msm_session_find(unsigned int session_id) |