summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c7
-rw-r--r--drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c5
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
index 4be7d91e9437..4a6010dd1c9a 100644
--- a/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
+++ b/drivers/mxc/gpu-viv/arch/GC350/hal/kernel/gc_hal_kernel_hardware_vg.c
@@ -308,6 +308,7 @@ gckVGHARDWARE_Construct(
do
{
+ gcmkERR_BREAK(gckOS_SetGPUPower(Os, gcvCORE_VG, gcvTRUE, gcvTRUE));
status = _ResetGPU(Os);
if (status != gcvSTATUS_OK)
@@ -340,10 +341,10 @@ gckVGHARDWARE_Construct(
hardware->powerMutex = gcvNULL;
hardware->idleSignal = gcvNULL;
- hardware->chipPowerState = gcvPOWER_OFF;
+ hardware->chipPowerState = gcvPOWER_ON;
hardware->chipPowerStateGlobal = gcvPOWER_ON;
- hardware->clockState = gcvFALSE;
- hardware->powerState = gcvFALSE;
+ hardware->clockState = gcvTRUE;
+ hardware->powerState = gcvTRUE;
hardware->powerOffTimeout = gcdPOWEROFF_TIMEOUT;
hardware->powerOffTime = 0;
hardware->timeIdleThread = gcvNULL;
diff --git a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
index 4a8e09c66774..7168f0ecea4c 100644
--- a/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
+++ b/drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_device.c
@@ -1632,6 +1632,11 @@ gckGALDEVICE_Start(
{
/* Setup the ISR routine. */
gcmkONERROR(gckGALDEVICE_Setup_ISR_VG(Device));
+
+ /* Switch to SUSPEND power state. */
+ gcmkONERROR(gckVGHARDWARE_SetPowerManagementState(
+ Device->kernels[gcvCORE_VG]->vg->hardware, gcvPOWER_OFF_BROADCAST
+ ));
}
gcmkFOOTER_NO();