summaryrefslogtreecommitdiff
path: root/drivers/mxc/gpu-viv/hal
diff options
context:
space:
mode:
authorLoren Huang <b02279@freescale.com>2012-07-06 18:59:08 +0800
committerTerry Lv <r65388@freescale.com>2012-07-25 13:10:39 +0800
commit47f90b6aefd51cd1dc0d8fde5c9500be044d4917 (patch)
tree226cafdcd427d3624edf6eae39bf75811dd2a7fa /drivers/mxc/gpu-viv/hal
parentd0686c6ce6b6aca3e56a48ea2a61ab212315dc64 (diff)
ENGR00215999 Export API for update gpu active clock dynamically
The patch is from vivante. Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Lily Zhang
Diffstat (limited to 'drivers/mxc/gpu-viv/hal')
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c18
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h12
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h20
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h7
4 files changed, 56 insertions, 1 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 c7a05a58c262..2dd650412911 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
+++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c
@@ -1796,6 +1796,24 @@ gckKERNEL_Dispatch(
break;
+ case gcvHAL_SET_FSCALE_VALUE:
+#if gcdENABLE_FSCALE_VAL_ADJUST
+ status = gckHARDWARE_SetFscaleValue(Kernel->hardware,
+ Interface->u.SetFscaleValue.value);
+#else
+ status = gcvSTATUS_NOT_SUPPORTED;
+#endif
+ break;
+ case gcvHAL_GET_FSCALE_VALUE:
+#if gcdENABLE_FSCALE_VAL_ADJUST
+ status = gckHARDWARE_GetFscaleValue(Kernel->hardware,
+ &Interface->u.GetFscaleValue.value,
+ &Interface->u.GetFscaleValue.minValue,
+ &Interface->u.GetFscaleValue.maxValue);
+#else
+ status = gcvSTATUS_NOT_SUPPORTED;
+#endif
+ break;
default:
/* Invalid command. */
gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
index b1e6b488f0af..d015915a2cf3 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h
@@ -344,6 +344,18 @@ gcoHAL_Get2DEngine(
OUT gco2D * Engine
);
+gceSTATUS
+gcoHAL_SetFscaleValue(
+ IN gctUINT FscaleValue
+ );
+
+gceSTATUS
+gcoHAL_GetFscaleValue(
+ OUT gctUINT * FscaleValue,
+ OUT gctUINT * MinFscaleValue,
+ OUT gctUINT * MaxFscaleValue
+ );
+
#ifndef VIVANTE_NO_3D
/* Get pointer to gco3D object. */
gceSTATUS
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
index 765341bf7851..c1f204f5e9eb 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver.h
@@ -153,7 +153,11 @@ typedef enum _gceHAL_COMMAND_CODES
/* GPU and event dump */
gcvHAL_DUMP_GPU_STATE,
- gcvHAL_DUMP_EVENT
+ gcvHAL_DUMP_EVENT,
+
+ /* FSCALE_VAL. */
+ gcvHAL_SET_FSCALE_VALUE,
+ gcvHAL_GET_FSCALE_VALUE
}
gceHAL_COMMAND_CODES;
@@ -893,6 +897,20 @@ typedef struct _gcsHAL_INTERFACE
IN gceVIDMEM_NODE_SHARED_INFO_TYPE infoType;
}
SetSharedInfo;
+
+ struct _gcsHAL_SET_FSCALE_VALUE
+ {
+ IN gctUINT value;
+ }
+ SetFscaleValue;
+
+ struct _gcsHAL_GET_FSCALE_VALUE
+ {
+ OUT gctUINT value;
+ OUT gctUINT minValue;
+ OUT gctUINT maxValue;
+ }
+ GetFscaleValue;
}
u;
}
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
index 0b7c42ce9190..01d2d52b54b2 100644
--- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
+++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h
@@ -152,6 +152,13 @@
# define gcdDUMP_FRAMERATE 0
#endif
+/*
+ gcdENABLE_FSCALE_VAL_ADJUST
+ When non-zero, FSCALE_VAL when gcvPOWER_ON can be adjusted externally.
+ */
+#ifndef gcdENABLE_FSCALE_VAL_ADJUST
+# define gcdENABLE_FSCALE_VAL_ADJUST 1
+#endif
/*
gcdDUMP_IN_KERNEL