diff options
author | Deepak Karda <deepak.karda@stericsson.com> | 2011-12-09 17:31:02 +0530 |
---|---|---|
committer | Philippe Langlais <philippe.langlais@stericsson.com> | 2012-04-04 13:22:52 +0200 |
commit | 916692af3e8c2a8609c41666d2220fa857114157 (patch) | |
tree | b3085346c4dab220a2d58decc2f87fb7a5f9f539 | |
parent | f7d8ac55db0b41ed64c4cd37f5d51bbd5bb8e776 (diff) |
[Android] AV8100 : Implement uevent for accessory detection
Ice Cream Sandwich come with the new service for Audio
accessory detection. This patch ensures that av8100 hdmi
source code send correct event to android code.
ST-Ericsson ID: 398326
ST-Ericsson FOSS-OUT ID: Trivial
Change-Id: I3e3cfa6a19736a806749dbdc03de02d8b76b75e1
Signed-off-by: Deepak Karda <deepak.karda@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/41897
Reviewed-by: Jimmy RUBIN <jimmy.rubin@stericsson.com>
Reviewed-by: Christophe PRIOUZEAU <christophe.priouzeau@stericsson.com>
Reviewed-by: Robert LIND <robert.lind@stericsson.com>
Reviewed-by: Devinder THAKUR <devinder.thakur@stericsson.com>
Reviewed-by: Hakan GARDRUP <hakan.gardrup@stericsson.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/42054
Reviewed-by: QABUILD
Tested-by: Axel FAGERSTEDT <axel.fagerstedt@stericsson.com>
Reviewed-by: Per PERSSON <per.xb.persson@stericsson.com>
-rw-r--r-- | drivers/video/av8100/hdmi.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/video/av8100/hdmi.c b/drivers/video/av8100/hdmi.c index 3159c4446f1..d1e40e7ca2f 100644 --- a/drivers/video/av8100/hdmi.c +++ b/drivers/video/av8100/hdmi.c @@ -26,6 +26,7 @@ #include <linux/sched.h> #include <linux/delay.h> #include <linux/list.h> +#include <linux/switch.h> #define SYSFS_EVENT_FILENAME "evread" #define HDMI_DEVNR_DEFAULT 0 @@ -45,6 +46,7 @@ struct hdmi_device { wait_queue_head_t event_wq; bool events_received; int devnr; + struct switch_dev switch_hdmi_detection; }; /* List of devices */ @@ -2341,12 +2343,14 @@ void hdmi_event(enum av8100_hdmi_event ev) case AV8100_HDMI_EVENT_HDMI_PLUGIN: hdev->events &= ~HDMI_EVENT_HDMI_PLUGOUT; hdev->events |= HDMI_EVENT_HDMI_PLUGIN; + switch_set_state(&hdev->switch_hdmi_detection, 1); break; case AV8100_HDMI_EVENT_HDMI_PLUGOUT: hdev->events &= ~HDMI_EVENT_HDMI_PLUGIN; hdev->events |= HDMI_EVENT_HDMI_PLUGOUT; cec_tx_status(hdev, CEC_TX_SET_FREE); + switch_set_state(&hdev->switch_hdmi_detection, 0); break; case AV8100_HDMI_EVENT_CEC: @@ -2444,6 +2448,9 @@ int __init hdmi_init(void) hdmi_sysfs_attrs[i].attr.name, ret); } + hdev->switch_hdmi_detection.name = "hdmi"; + switch_dev_register(&hdev->switch_hdmi_detection); + /* Register event callback */ av8100_hdmi_event_cb_set(hdmi_event); @@ -2465,6 +2472,8 @@ void hdmi_exit(void) /* Deregister event callback */ av8100_hdmi_event_cb_set(NULL); + switch_dev_unregister(&hdev->switch_hdmi_detection); + /* Remove sysfs attrs */ for (i = 0; attr_name(hdmi_sysfs_attrs[i]); i++) device_remove_file(hdev->dev, &hdmi_sysfs_attrs[i]); |