diff options
author | Raghuram Subramani <raghus2247@gmail.com> | 2024-12-10 19:24:06 +0530 |
---|---|---|
committer | Raghuram Subramani <raghus2247@gmail.com> | 2024-12-10 19:24:06 +0530 |
commit | 6fcfee9ad063deee7ebf0cfe679a26a7d3bb0018 (patch) | |
tree | d64b0946ed627a54bac6a1ee0c7e6e2615bb334b /drivers/gpu/msm/adreno_drawctxt.c | |
parent | 75aa08b2b132058296cf4d7ceb5fde8fa08d9585 (diff) | |
parent | cab36b84b72b7eabba1639dc7520161d7de8567b (diff) |
Merge remote-tracking branch 'los/lineage-20' into lineage-21HEADlineage-21
Diffstat (limited to 'drivers/gpu/msm/adreno_drawctxt.c')
-rw-r--r-- | drivers/gpu/msm/adreno_drawctxt.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/msm/adreno_drawctxt.c b/drivers/gpu/msm/adreno_drawctxt.c index 446df0e98217..94d0e6d6b8dd 100644 --- a/drivers/gpu/msm/adreno_drawctxt.c +++ b/drivers/gpu/msm/adreno_drawctxt.c @@ -1,4 +1,5 @@ /* Copyright (c) 2002,2007-2017,2020, The Linux Foundation. All rights reserved. + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -609,8 +610,6 @@ int adreno_drawctxt_switch(struct adreno_device *adreno_dev, if (drawctxt != NULL && kgsl_context_detached(&drawctxt->base)) return -ENOENT; - trace_adreno_drawctxt_switch(rb, drawctxt); - /* Get a refcount to the new instance */ if (drawctxt) { if (!_kgsl_context_get(&drawctxt->base)) @@ -623,7 +622,7 @@ int adreno_drawctxt_switch(struct adreno_device *adreno_dev, } ret = adreno_ringbuffer_set_pt_ctx(rb, new_pt, drawctxt, flags); if (ret) - return ret; + goto err; if (rb->drawctxt_active) { /* Wait for the timestamp to expire */ @@ -634,6 +633,13 @@ int adreno_drawctxt_switch(struct adreno_device *adreno_dev, } } + trace_adreno_drawctxt_switch(rb, drawctxt); + rb->drawctxt_active = drawctxt; + return 0; +err: + if (drawctxt) + kgsl_context_put(&drawctxt->base); + return ret; } |