summaryrefslogtreecommitdiff
path: root/drivers/gpu/msm/kgsl_pwrctrl.c
diff options
context:
space:
mode:
authorPrakash Kamliya <pkamliya@codeaurora.org>2015-10-14 11:22:59 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:12:29 -0700
commitf5d225e2ffc9581b4d8dd6391e09f5564dd25bde (patch)
tree9baa918ae9e20c09c2701aea14f471902c380276 /drivers/gpu/msm/kgsl_pwrctrl.c
parent56ed9e43b79770aac5c959b79c4b72fdaf50c9e0 (diff)
msm: kgsl: Fix state transition action from deep_nap state
Deep nap removes the quality of service latency vote. Restore device before powering back the GPU while coming out of deep nap. Change-Id: I9366ffa6f5f2768cb3ea10f9117678ba8cf8d190 Signed-off-by: Prakash Kamliya <pkamliya@codeaurora.org> Signed-off-by: Divya Ponnusamy <pdivya@codeaurora.org>
Diffstat (limited to 'drivers/gpu/msm/kgsl_pwrctrl.c')
-rw-r--r--drivers/gpu/msm/kgsl_pwrctrl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/msm/kgsl_pwrctrl.c b/drivers/gpu/msm/kgsl_pwrctrl.c
index e10901804076..1da59d437a77 100644
--- a/drivers/gpu/msm/kgsl_pwrctrl.c
+++ b/drivers/gpu/msm/kgsl_pwrctrl.c
@@ -1982,11 +1982,14 @@ static int _init(struct kgsl_device *device)
{
int status = 0;
switch (device->state) {
- case KGSL_STATE_NAP:
case KGSL_STATE_DEEP_NAP:
- case KGSL_STATE_SLEEP:
+ pm_qos_update_request(&device->pwrctrl.pm_qos_req_dma,
+ device->pwrctrl.pm_qos_active_latency);
/* Get the device out of retention */
kgsl_pwrctrl_retention_clk(device, KGSL_PWRFLAGS_ON);
+ /* fall through */
+ case KGSL_STATE_NAP:
+ case KGSL_STATE_SLEEP:
/* Force power on to do the stop */
status = kgsl_pwrctrl_enable(device);
case KGSL_STATE_ACTIVE: