diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index bb78e9ce8bb31298564fdeb6066477307e8fc742..af13a48c3f7b42898b8d5a31f57db5d695606308 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -562,6 +562,15 @@ kgsl_context_destroy(struct kref *kref) kgsl_sharedmem_writel(device, &device->memstore, KGSL_MEMSTORE_OFFSET(context->id, eoptimestamp), 0); + /* clear device power constraint */ + if (context->id == device->pwrctrl.constraint.owner_id) { + trace_kgsl_constraint(device, + device->pwrctrl.constraint.type, + device->pwrctrl.active_pwrlevel, + 0); + device->pwrctrl.constraint.type = KGSL_CONSTRAINT_NONE; + } + idr_remove(&device->context_idr, context->id); context->id = KGSL_CONTEXT_INVALID; }