summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/nvrm_user.c
diff options
context:
space:
mode:
authorGary King <gking@nvidia.com>2010-01-26 09:53:49 -0800
committerGary King <gking@nvidia.com>2010-01-26 14:16:45 -0800
commitee4f9e05d39f3eabd0b8603051402f4a45de3629 (patch)
tree8cb5dd769a68155dc9bc27e680795eb6e04d7e95 /arch/arm/mach-tegra/nvrm_user.c
parent73f6d4ab65fb57e19e3983421538637595b44a13 (diff)
tegra power: set freezable property for DFS thread
to ensure that the DFS thread doesn't try to do anything bad during a system suspend or resume operation (access I2C, hot-plug a CPU, etc), it should be frozen. since the DFS loop is performed over a semaphore, it needs to receive a fake signal to interrupt the semaphore down_interruptible operation so that it will call into refrigerator bug 645292 Change-Id: Iedc4da06ec839ba6800d541ed703adc7bf9555c0
Diffstat (limited to 'arch/arm/mach-tegra/nvrm_user.c')
-rw-r--r--arch/arm/mach-tegra/nvrm_user.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/nvrm_user.c b/arch/arm/mach-tegra/nvrm_user.c
index 543c1fb27f96..04bbae45068c 100644
--- a/arch/arm/mach-tegra/nvrm_user.c
+++ b/arch/arm/mach-tegra/nvrm_user.c
@@ -28,6 +28,7 @@
#include <linux/sched.h>
#include <linux/cpu.h>
#include <linux/platform_device.h>
+#include <linux/freezer.h>
#include "nvcommon.h"
#include "nvassert.h"
#include "nvos.h"
@@ -152,6 +153,8 @@ static void NvRmDfsThread(void *args)
panic("Unable to setaffinity of DFS thread!\n");
}
+ set_freezable_with_signal();
+
if (NvRmDfsGetState(hRm) > NvRmDfsRunState_Disabled)
{
NvRmDfsSetState(hRm, NvRmDfsRunState_ClosedLoop);