summaryrefslogtreecommitdiff
path: root/drivers/mxc
diff options
context:
space:
mode:
authorMarius Vlad <marius-cristian.vlad@nxp.com>2018-06-07 16:47:34 +0300
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:41:33 +0300
commitbfc21f035cb0e27bff21bba1ec2861c3944804ec (patch)
treec748c4b9bb062eecc994ced277dd6083f8e49f4d /drivers/mxc
parent5fecbac2668f666d3c8b281164c876b4c86bfc67 (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.c19
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel_command.c13
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(