Skip to content
Snippets Groups Projects
Commit 06f673a8 authored by Jiyu Yang's avatar Jiyu Yang Committed by Gianfranco Mariotti
Browse files

LF-4817 refine gpu governor


6.4.3.p4 release

Signed-off-by: default avatarJiyu Yang <jiyu.yang@nxp.com>
parent e7806f74
Branches
No related tags found
1 merge request!156Draft: [i.MX] mxc: gpu-viv: apply patches
...@@ -1588,12 +1588,14 @@ static int gc_clk_write(const char __user *buf, size_t count, void* data) ...@@ -1588,12 +1588,14 @@ static int gc_clk_write(const char __user *buf, size_t count, void* data)
char _buf[100]; char _buf[100];
count = min_t(size_t, count, (sizeof(_buf)-1)); count = min_t(size_t, count, (sizeof(_buf)-1));
ret = copy_from_user(_buf, buf, count); ret = copy_from_user(_buf, buf, count);
if (ret != 0) if (ret != 0)
{ {
printk("Error: lost data: %d\n", (int)ret); printk("Error: lost data: %d\n", (int)ret);
return -EFAULT; return -EFAULT;
} }
_buf[count] = 0; _buf[count] = 0;
_set_clk(_buf); _set_clk(_buf);
...@@ -2882,54 +2884,33 @@ gckGALDEVICE_Suspend( ...@@ -2882,54 +2884,33 @@ gckGALDEVICE_Suspend(
{ {
continue; continue;
} }
synchronize_irq(Device->irqLines[i]); synchronize_irq(Device->irqLines[i]);
Device->statesStored[i] = gcvPOWER_INVALID; Device->statesStored[i] = gcvPOWER_INVALID;
}
for (i = 0; i < gcdMAX_GPU_COUNT; i++)
{
if (Device->kernels[i] == gcvNULL)
{
continue;
}
/* Query previous state and set specific state. */
#if gcdENABLE_VG #if gcdENABLE_VG
if (i == gcvCORE_VG) if (i == gcvCORE_VG)
{ {
vgHardware = Device->kernels[i]->vg->hardware; vgHardware = Device->kernels[i]->vg->hardware;
}
else
#endif
{
hardware = Device->kernels[i]->hardware;
}
/* Query state. */
#if gcdENABLE_VG
if (i == gcvCORE_VG)
{
gcmkONERROR(gckVGHARDWARE_QueryPowerManagementState(vgHardware, gcmkONERROR(gckVGHARDWARE_QueryPowerManagementState(vgHardware,
&currentState)); &currentState));
gcmkONERROR(gckVGHARDWARE_SetPowerState(vgHardware, State));
} }
else else
#endif #endif
{ {
hardware = Device->kernels[i]->hardware;
gcmkONERROR(gckHARDWARE_QueryPowerState(hardware, &currentState)); gcmkONERROR(gckHARDWARE_QueryPowerState(hardware, &currentState));
gcmkONERROR(gckHARDWARE_SetPowerState(hardware, State));
} }
/* Store state. */ /* Store state. */
Device->statesStored[i] = currentState; Device->statesStored[i] = currentState;
#if gcdENABLE_VG
if (i == gcvCORE_VG)
{
gcmkONERROR(gckVGHARDWARE_SetPowerState(vgHardware, State));
}
else
#endif
{
gcmkONERROR(gckHARDWARE_SetPowerState(hardware, State));
}
} }
gcmkFOOTER_NO(); gcmkFOOTER_NO();
...@@ -3016,21 +2997,14 @@ gckGALDEVICE_Resume( ...@@ -3016,21 +2997,14 @@ gckGALDEVICE_Resume(
if (i == gcvCORE_VG) if (i == gcvCORE_VG)
{ {
vgHardware = Device->kernels[i]->vg->hardware; vgHardware = Device->kernels[i]->vg->hardware;
}
else
#endif
{
hardware = Device->kernels[i]->hardware;
}
#if gcdENABLE_VG
if (i == gcvCORE_VG)
{
gcmkONERROR(gckVGHARDWARE_SetPowerState(vgHardware, gcvPOWER_ON)); gcmkONERROR(gckVGHARDWARE_SetPowerState(vgHardware, gcvPOWER_ON));
} }
else else
#endif #endif
{ {
hardware = Device->kernels[i]->hardware;
gcmkONERROR(gckHARDWARE_SetPowerState(hardware, gcvPOWER_ON)); gcmkONERROR(gckHARDWARE_SetPowerState(hardware, gcvPOWER_ON));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment