diff options
author | Marius Vlad <marius-cristian.vlad@nxp.com> | 2018-06-07 16:47:34 +0300 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | bfc21f035cb0e27bff21bba1ec2861c3944804ec (patch) | |
tree | c748c4b9bb062eecc994ced277dd6083f8e49f4d /drivers/mxc | |
parent | 5fecbac2668f666d3c8b281164c876b4c86bfc67 (diff) |
MGS-3969 [#imx-879] Fix reading HW counters values using old profiling method for GC7000
Adapted from 7a3d1096aa0cc77e258. This brings back the ability for
gputop to read HW counter values.
Signed-off-by: Marius Vlad <marius-cristian.vlad@nxp.com>
Diffstat (limited to 'drivers/mxc')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c | 19 | ||||
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c | 13 |
2 files changed, 18 insertions, 14 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c index efb015993a57..2cdc21f92930 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c @@ -2486,6 +2486,7 @@ gckKERNEL_Dispatch( } else { + gctUINT32 i; if (Interface->u.Commit.count > 1 && Interface->engine == gcvENGINE_RENDER) { gctUINT32 i; @@ -2530,7 +2531,6 @@ gckKERNEL_Dispatch( if (Interface->u.Commit.count > 1 && Interface->engine == gcvENGINE_RENDER) { - gctUINT32 i; for (i = 1; i < Interface->u.Commit.count; i++) { @@ -2567,6 +2567,23 @@ gckKERNEL_Dispatch( } } } + + for (i = 0; i < Interface->u.Commit.count; i++) { + gceHARDWARE_TYPE type = Interface->hardwareType; + gckKERNEL kernel = Device->map[type].kernels[i]; + + if ((kernel->hardware->options.gpuProfiler == gcvTRUE) && + (kernel->profileEnable == gcvTRUE)) { + gcmkONERROR(gckCOMMAND_Stall(kernel->command, gcvTRUE)); + + if (kernel->command->currContext) { + gcmkONERROR(gckHARDWARE_UpdateContextProfile( + kernel->hardware, + kernel->command->currContext)); + } + } + } + } gcmkONERROR(gckOS_ReleaseMutex(Kernel->os, Kernel->device->commitMutex)); commitMutexAcquired = gcvFALSE; diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c index 7a6511828b18..a9cb300c72e1 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c @@ -2538,19 +2538,6 @@ gckCOMMAND_Commit( gcmkONERROR(gckCOMMAND_ExitCommit(Command, gcvFALSE)); commitEntered = gcvFALSE; - if ((Command->kernel->hardware->options.gpuProfiler == gcvTRUE) && - (Command->kernel->profileEnable == gcvTRUE)) - { - gcmkONERROR(gckCOMMAND_Stall(Command, gcvTRUE)); - - if (Command->currContext) - { - gcmkONERROR(gckHARDWARE_UpdateContextProfile( - hardware, - Command->currContext)); - } - } - if (status == gcvSTATUS_INTERRUPTED) { gcmkTRACE( |