]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00141554 tve: fix atomic schedule issue in uevent
authorJason Chen <b02280@freescale.com>
Fri, 15 Apr 2011 08:35:21 +0000 (16:35 +0800)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:32:47 +0000 (08:32 +0200)
uevent should not be sent during lock hold.

Signed-off-by: Jason Chen <b02280@freescale.com>
drivers/video/mxc/tve.c

index b29c1d5fd5efcb1bef67fd669eb66003ebb96ab9..34084a37999f2295dcc6aa31257c8c220af63c6a 100644 (file)
@@ -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;
 }