aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chen <b02280@freescale.com>2011-04-15 16:23:13 +0800
committerRichard Zhao <richard.zhao@freescale.com>2011-04-19 15:03:47 +0800
commit896fad75c6332f3e0a6a55d3da4183a97e0b7b23 (patch)
tree512d12c393a8ad32824495811be118e85bd9e66f
parentfee71a5e1698480a25d08d5a1c8338b015b998b7 (diff)
ENGR00141312 tve: add uevent for tve cable detection
When cable mode changed, below uevent will be sent out: EVENT=NONE EVENT=CVBS0 EVENT=YPBPR EVENT=SVIDEO under /sys/devices/platform/tve.0 Signed-off-by: Jason Chen <b02280@freescale.com> Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
-rw-r--r--drivers/video/mxc/tve.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/video/mxc/tve.c b/drivers/video/mxc/tve.c
index 3470bd445ca..b29c1d5fd5e 100644
--- a/drivers/video/mxc/tve.c
+++ b/drivers/video/mxc/tve.c
@@ -745,6 +745,8 @@ static int tve_update_detect_status(void)
u32 cd_cont_reg;
u32 timeout = 40;
unsigned long lock_flags;
+ char event_string[16];
+ char *envp[] = { event_string, NULL };
spin_lock_irqsave(&tve_lock, lock_flags);
@@ -826,8 +828,18 @@ 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);
- if (old_detect != tve.detect)
+ if (old_detect != tve.detect) {
sysfs_notify(&tve.pdev->dev.kobj, NULL, "headphone");
+ if (tve.detect == 1)
+ sprintf(event_string, "EVENT=CVBS0");
+ else if (tve.detect == 3)
+ sprintf(event_string, "EVENT=YPBPR");
+ else if (tve.detect == 4)
+ sprintf(event_string, "EVENT=SVIDEO");
+ else
+ sprintf(event_string, "EVENT=NONE");
+ kobject_uevent_env(&tve.pdev->dev.kobj, KOBJ_CHANGE, envp);
+ }
dev_dbg(&tve.pdev->dev, "detect = %d mode = %d\n",
tve.detect, tve.output_mode);