diff options
author | Gary King <gking@nvidia.com> | 2010-01-26 09:53:49 -0800 |
---|---|---|
committer | Gary King <gking@nvidia.com> | 2010-01-26 14:16:45 -0800 |
commit | ee4f9e05d39f3eabd0b8603051402f4a45de3629 (patch) | |
tree | 8cb5dd769a68155dc9bc27e680795eb6e04d7e95 /arch | |
parent | 73f6d4ab65fb57e19e3983421538637595b44a13 (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')
-rw-r--r-- | arch/arm/mach-tegra/nvrm_user.c | 3 |
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); |