aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-04-15 16:35:21 +0800
committerRichard Zhao <richard.zhao@freescale.com>2011-04-19 15:03:49 +0800
commit79d14d69915121e180afa1fb6ec21b1718069058 (patch)
treec300dad4a120cb50ee0b405f6bbf6eace2925d10
parent47ce52b9a70f9ddd2e9ae9146e391cafe4058c1d (diff)
ENGR00141554 tve: fix atomic schedule issue in uevent
uevent should not be sent during lock hold. Signed-off-by: Jason Chen <b02280@freescale.com> Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
-rw-r--r--drivers/video/mxc/tve.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/video/mxc/tve.c b/drivers/video/mxc/tve.c
index b29c1d5fd5e..34084a37999 100644
--- a/drivers/video/mxc/tve.c
+++ b/drivers/video/mxc/tve.c
@@ -828,6 +828,9 @@ static int tve_update_detect_status(void)
__raw_writel(int_ctl | CD_SM_INT | CD_LM_INT,
tve.base + tve_regs->tve_int_cont_reg);
+done:
+ spin_unlock_irqrestore(&tve_lock, lock_flags);
+
if (old_detect != tve.detect) {
sysfs_notify(&tve.pdev->dev.kobj, NULL, "headphone");
if (tve.detect == 1)
@@ -843,8 +846,6 @@ static int tve_update_detect_status(void)
dev_dbg(&tve.pdev->dev, "detect = %d mode = %d\n",
tve.detect, tve.output_mode);
-done:
- spin_unlock_irqrestore(&tve_lock, lock_flags);
return tve.detect;
}