Loading drivers/gpu/msm/adreno_dispatch.c +29 −5 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) struct kgsl_context *context = cmdbatch->context; struct adreno_context *drawctxt = ADRENO_CONTEXT(cmdbatch->context); struct kgsl_device *device = context->device; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); /* * Write the start and end timestamp to the memstore to keep the Loading @@ -301,6 +302,15 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) /* Retire pending GPU events for the object */ kgsl_process_event_group(device, &context->events); /* * For A3xx we still get the rptr from the CP_RB_RPTR instead of * rptr scratch out address. At this point GPU clocks turned off. * So avoid reading GPU register directly for A3xx. */ if (adreno_is_a3xx(adreno_dev)) trace_adreno_cmdbatch_retired(cmdbatch, -1, 0, 0, drawctxt->rb, 0); else trace_adreno_cmdbatch_retired(cmdbatch, -1, 0, 0, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); kgsl_cmdbatch_destroy(cmdbatch); Loading Loading @@ -613,12 +623,13 @@ static int sendcmd(struct adreno_device *adreno_dev, } } mutex_unlock(&device->mutex); if (ret) { dispatcher->inflight--; dispatch_q->inflight--; mutex_unlock(&device->mutex); /* * Don't log a message in case of: * -ENOENT means that the context was detached before the Loading @@ -642,6 +653,8 @@ static int sendcmd(struct adreno_device *adreno_dev, time.ticks, (unsigned long) secs, nsecs / 1000, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); mutex_unlock(&device->mutex); cmdbatch->submit_ticks = time.ticks; dispatch_q->cmd_q[dispatch_q->tail] = cmdbatch; Loading Loading @@ -1923,8 +1936,19 @@ static void retire_cmdbatch(struct adreno_device *adreno_dev, if (test_bit(CMDBATCH_FLAG_PROFILE, &cmdbatch->priv)) cmdbatch_profile_ticks(adreno_dev, cmdbatch, &start, &end); trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), /* * For A3xx we still get the rptr from the CP_RB_RPTR instead of * rptr scratch out address. At this point GPU clocks turned off. * So avoid reading GPU register directly for A3xx. */ if (adreno_is_a3xx(adreno_dev)) trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), 0); else trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), adreno_get_rptr(drawctxt->rb)); drawctxt->submit_retire_ticks[drawctxt->ticks_index] = Loading Loading
drivers/gpu/msm/adreno_dispatch.c +29 −5 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) struct kgsl_context *context = cmdbatch->context; struct adreno_context *drawctxt = ADRENO_CONTEXT(cmdbatch->context); struct kgsl_device *device = context->device; struct adreno_device *adreno_dev = ADRENO_DEVICE(device); /* * Write the start and end timestamp to the memstore to keep the Loading @@ -301,6 +302,15 @@ static void _retire_marker(struct kgsl_cmdbatch *cmdbatch) /* Retire pending GPU events for the object */ kgsl_process_event_group(device, &context->events); /* * For A3xx we still get the rptr from the CP_RB_RPTR instead of * rptr scratch out address. At this point GPU clocks turned off. * So avoid reading GPU register directly for A3xx. */ if (adreno_is_a3xx(adreno_dev)) trace_adreno_cmdbatch_retired(cmdbatch, -1, 0, 0, drawctxt->rb, 0); else trace_adreno_cmdbatch_retired(cmdbatch, -1, 0, 0, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); kgsl_cmdbatch_destroy(cmdbatch); Loading Loading @@ -613,12 +623,13 @@ static int sendcmd(struct adreno_device *adreno_dev, } } mutex_unlock(&device->mutex); if (ret) { dispatcher->inflight--; dispatch_q->inflight--; mutex_unlock(&device->mutex); /* * Don't log a message in case of: * -ENOENT means that the context was detached before the Loading @@ -642,6 +653,8 @@ static int sendcmd(struct adreno_device *adreno_dev, time.ticks, (unsigned long) secs, nsecs / 1000, drawctxt->rb, adreno_get_rptr(drawctxt->rb)); mutex_unlock(&device->mutex); cmdbatch->submit_ticks = time.ticks; dispatch_q->cmd_q[dispatch_q->tail] = cmdbatch; Loading Loading @@ -1923,8 +1936,19 @@ static void retire_cmdbatch(struct adreno_device *adreno_dev, if (test_bit(CMDBATCH_FLAG_PROFILE, &cmdbatch->priv)) cmdbatch_profile_ticks(adreno_dev, cmdbatch, &start, &end); trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), /* * For A3xx we still get the rptr from the CP_RB_RPTR instead of * rptr scratch out address. At this point GPU clocks turned off. * So avoid reading GPU register directly for A3xx. */ if (adreno_is_a3xx(adreno_dev)) trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), 0); else trace_adreno_cmdbatch_retired(cmdbatch, (int) dispatcher->inflight, start, end, ADRENO_CMDBATCH_RB(cmdbatch), adreno_get_rptr(drawctxt->rb)); drawctxt->submit_retire_ticks[drawctxt->ticks_index] = Loading