summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorRobert Hancock <hancockr@shaw.ca>2007-01-07 12:12:19 +0100
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-01-15 19:25:31 +0100
commita96afb3e9428f2e7463344f12dbc85faf08e2e09 (patch)
treea8219ad5621efbeea27c5bae53fe88803f5b787d /drivers/media
parentV4L/DVB (5020): Fix: disable interrupts while at KM_BOUNCE_READ (diff)
downloadlinux-a96afb3e9428f2e7463344f12dbc85faf08e2e09.tar.xz
linux-a96afb3e9428f2e7463344f12dbc85faf08e2e09.zip
V4L/DVB (5021): Cx88xx: Fix lockup on suspend
Suspending with the cx88xx module loaded causes the system to lock up because the cx88_audio_thread kthread was missing a try_to_freeze() call, which caused it to go into a tight loop and result in softlockup when suspending. Fix that. Signed-off-by: Robert Hancock <hancockr@shaw.ca> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/cx88/cx88-tvaudio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c
index 3482e0114d43..2bd84d351a18 100644
--- a/drivers/media/video/cx88/cx88-tvaudio.c
+++ b/drivers/media/video/cx88/cx88-tvaudio.c
@@ -38,6 +38,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/errno.h>
+#include <linux/freezer.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/mm.h>
@@ -961,6 +962,7 @@ int cx88_audio_thread(void *data)
msleep_interruptible(1000);
if (kthread_should_stop())
break;
+ try_to_freeze();
/* just monitor the audio status for now ... */
memset(&t, 0, sizeof(t));